Вопросы с тегом «shell»

Оболочка является интерфейсом командной строки Unix. Вы можете вводить команды в оболочке в интерактивном режиме или писать сценарии для автоматизации задач. Используйте этот тег для вопросов, относящихся к / bin / sh и большинству совместимых оболочек (ash, bash, ksh, zsh,…). Для сценариев оболочки с ошибками, пожалуйста, проверьте их в http://shellcheck.net перед публикацией здесь.

2
запуск сценария с «. И с «источником»
Мне было интересно, если следующие два способа запуска сценария bash эквивалентны? . ./myScript.sh source myScript.sh Они оба запускают содержимое скрипта вместо того, чтобы запускать скрипт, т.е. не создают подоболочку для запуска скрипта?

11
Как я могу напечатать строки из файла в обратном направлении (без использования «TAC»)?
Этот вопрос был перенесен из Stack Overflow, потому что на него можно ответить в Unix и Linux Stack Exchange. Мигрировал 8 лет назад . Я хочу напечатать строки из файла в обратном направлении без использования tacкоманды. Есть ли другое решение, чтобы сделать такую ​​вещь с Bash?

2
Bash цикл «for» без части «in foo bar…»
Недавно я смотрел на какой-то код, который смутил меня, потому что он работает, и я не ожидал этого. Код сводится к этому примеру #!/bin/bash for var; do echo "$var" done При запуске с аргументами командной строки выводит их $ ./test a b c a b c Это то, что является …

4
Почему при написании оболочки для cd мне нужно использовать cd «$ @» вместо cd «$ 1»?
В другом месте я видел функцию CD, как показано ниже: cd() { builtin cd "$@" } почему рекомендуется использовать $@вместо $1? Я создал тестовый каталог "r st" и вызвал скрипт, содержащий эту функцию, и он работал в любом случае $ . cdtest.sh "r st" но $ . cdtest.sh r stне …

3
Удалить ^ C, когда CTRL + C
Есть ли способ удалить, ^Cкогда вы нажмете CTRL+ Cв оболочке, включенной с Red Hat Enterprise Linux 6 («Сантьяго»)? У меня есть разрешение на редактирование своего .bash_profile.
25 shell 

2
Каков переносимый (POSIX) способ добиться замены процесса?
Некоторые оболочки, например bash, поддерживают замену процесса, которая представляет собой способ представления результатов процесса в виде файла, например: $ diff <(sort file1) <(sort file2) Однако эта конструкция не POSIX и, следовательно, не переносимая. Как можно заменить процесс на POSIX- дружественный метод (т. Е. Тот, который работает в /bin/sh) ? примечание: …

2
Открытие командной строки в текстовом редакторе - как это называется?
Один из моих любимых приемов в Bash - это когда я открываю командную строку в текстовом редакторе. Я делаю это (в режиме vi) нажатием ESC v. Когда я это делаю, все, что находится в моей командной строке, теперь отображается в моем выбранном $ EDITOR. Затем я могу отредактировать команду, как …

2
Есть ли проблемы с дефисами в функциях, псевдонимах и исполняемых файлах?
В моем тестировании (в Bash и Z Shell) я не видел проблем с определением функций или псевдонимов или исполняемых сценариев оболочки, в имени которых есть дефисы, но я не уверен, что это будет хорошо во всех оболочках и во всех случаях использования. , Причина, по которой я хотел бы сделать …
25 bash  shell  zsh  ksh  csh 

4
Ошибка сценария Bash со строками с путями, которые имеют пробелы и подстановочные знаки
У меня возникли проблемы с основами написания скриптов на Bash. Вот что у меня так далеко: #!/bin/bash FILES="/home/john/my directory/*.txt" for f in "${FILES}" do echo "${f}" done Все, что я хочу сделать, это перечислить все .txtфайлы в forцикле, чтобы я мог с ними что-то делать. Но пространство в my directoryзвездочке …

3
Shellcheck советует не использовать базовое имя: почему?
Я пытаюсь из shellcheck . У меня что-то подобное basename "${OPENSSL}" и я получаю следующее предложение Use parameter expansion instead, such as ${var##*/}. С практической точки зрения я не вижу разницы $ export OPENSSL=/opt/local/bin/openssl $ basename ${OPENSSL} openssl $ echo ${OPENSSL##*/} openssl Так basenameкак в спецификации POSIX , я не …

2
Где вилка () на бомбе: () {: |: &};:?
Предупреждение: выполнение этой команды в большинстве оболочек приведет к поломке системы, для исправления которой потребуется принудительное отключение Я понимаю рекурсивную функцию :(){ :|: & };:и что она делает. Но я не знаю, где находится системный вызов fork. Я не уверен, но я подозреваю в трубе |.

2
Удалить все пробелы, табуляции, новые строки и т. Д. Из переменной?
Это ошибка, которую я получаю, и она терпит неудачу из-за переменной, значение которой должно быть 2 (я получаю это, используя a select * from tabel). Я получаю пробелы в этой переменной. + 0 != 2 ./setjobs[19]: 0: not found. Как удалить все эти пробелы или символ новой строки из этой …
25 shell  sed  tr  whitespace  newlines 

6
Есть ли способ установить размер списка истории в bash более 5000 строк?
Этот вопрос был перенесен из Stack Overflow, потому что на него можно ответить в Unix и Linux Stack Exchange. Мигрировал 8 лет назад . Независимо от того, насколько я установил HISTSIZEпеременную среды больше 5000, при печати списка истории с помощью historyвстроенной функции он печатает только последние 5000 команд. Мне это …
25 linux  bash  shell 


6
Как рекурсивно проверить разрешения в обратном порядке?
Есть команда, я думаю, она поставляется с Apache или как-то связана с ней, которая проверяет права доступа вплоть до самого конца. Так что, если у меня /home/foo/bar/bazбудет сказать мне , что разрешения являются для baz, bar, fooи home. Кто-нибудь знает, что это за команда или как это сделать? Команда в …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.