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

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

2
Странное поведение tr с использованием диапазонов
У меня есть один конкретный сервер, который демонстрирует странное поведение при использовании tr. Вот пример с рабочего сервера: -bash-3.2$ echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-z] 1234567890 -bash-3.2$ Это имеет смысл для меня. Это, однако, с «специального» сервера: [root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-z] abcdefghijklmnpqrstuvwxyz1234567890 Как видите, удалить все строчные буквы не удается. НО, …

3
Неожиданное поведение с эхом [[: digit:]]
Я хотел бы спросить: Почему echo {1,2,3}расширен до 1 2 3, что является ожидаемым поведением, а echo [[:digit:]]возвращается, [[:digit:]]пока я ожидал, что он будет печатать все цифры от 0до 9?
10 shell  wildcards 

5
Чувствительность к регистру в квадратных скобках
Обычно, bash globbing чувствителен к регистру: $ echo c* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo C* CarePackage.md ChocRippleCake.md Clips Использование квадратных скобок, кажется, не меняет это: $ echo [c]* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo [C]* CarePackage.md ChocRippleCake.md …
10 bash  shell  wildcards  locale 

3
Переменная оболочки и переменная среды, какая из них предпочтительнее, если оба имеют одно и то же имя?
Набрав в Bash следующее: env | grep USER и set | grep USER дает оба раза одно и то же имя пользователя. Как узнать, например, при вводе, была echo $USERли отображена оболочка или переменная окружения?

2
Назначения похожи на команды со статусом выхода, кроме случаев, когда есть подстановка команд?
Смотрите следующие примеры и их вывод в оболочках POSIX: false;echo $?или false || echo 1:1 false;foo="bar";echo $?или foo="bar" && echo 0:0 foo=$(false);echo $?или foo=$(false) || echo 1:1 foo=$(true);echo $?или foo=$(true) && echo 0:0 Как указано в ответе с наибольшим количеством голосов на /programming/6834487/what-is-the-variable-in-shell-scripting : $? используется для поиска возвращаемого значения …


2
Является ли «$?» (знак доллара) доступна только в оболочке Bash?
В Bashоболочке я могу получить статус выхода команды через $?переменную: # ps -ef | grep "haha" root 15439 15345 0 23:02 pts/0 00:00:00 grep --color=auto haha # echo $? 0 Это доступно только в оболочке Bash? Или я тоже могу использовать его в других оболочках?

2
Почему цикл while останавливается после приостановки?
Почему при использовании bash и приостановке цикла while цикл возобновляется после возобновления? Краткий пример ниже. $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ Я знаком с сигналами, и я предполагаю, что это может быть естественным поведением bash, …

2
Заменить текущий процесс его сопроцессом / потомком
У меня есть программа, Pкоторая ожидает получить «Hello» и вывод «Почему?» перед предоставлением функции. Эта функция используется другими программами, которые не знают, что общение с «Hello» является обычной вежливостью. Таким образом, я хочу написать оболочку для Pэтого работает так (синтаксис zsh): coproc P print -p Hello # Send Hello to …
10 shell  scripting  process  zsh 

4
Почему моя программа под названием «set» не выполняется?
Я создал простую программу на C, например: int main(int argc, char *argv[]) { if (argc != 5) { fputs("Not enough arguments!\n", stderr); exit(EXIT_FAILURE); } И мой PATH был изменен в etc / bash.bashrc примерно так: PATH=.:$PATH Я сохранил эту программу как set.c и собираю ее gcc -o set set.c в …

3
Выполнять команду каждые X секунд
Я хочу выполнять команду каждые 10 секунд, и выполняется ли она в фоновом режиме (тем самым исключая watch?). Все ответы показывают что-то вроде следующего, но это будет выполняться каждые 11-14 секунд. Как это можно сделать? while true; do # perform command that takes between 1 and 4 seconds sleep 10 …

2
Захват вывода / перенаправление команд, связанных & &
У меня есть ряд команд , а, Ь, с которой я Цепочка вместе с &&: a && b && c. Я хочу перехватить вывод всех команд на stdout и stderr. a && b && c 2>&1 > capture_file захватывает только выходные данные команды c.

2
Как отправить весь вывод `logger` в оболочке POSIX?
Я хотел бы регистрировать стандартный вывод и стандартную ошибку отдельно при .xprofileиспользовании logger. В Bash я думаю, что это будет выглядеть примерно так: exec 1> >(logger --priority user.notice --tag $(basename $0)) \ 2> >(logger --priority user.error --tag $(basename $0)) Как бы я сделал это в POSIX- /bin/sh совместимой манере?
10 shell  pipe  posix 

7
Как я могу сделать сценарий, чтобы считать на пять?
Я пытался сделать очень простой bash-скрипт для перечисления всех пятикратных чисел между 375 и 3500 (375, 380, 385 ...). Одна вещь, которую я пробовал и не работал: for i in {375..3500} do echo $i (($i += 5)) done Через некоторое время я сдался и написал это на бейсике примерно через …
10 bash  shell  scripting 

2
Пространства имен оболочки
Есть ли способ sourceдобавить сценарий оболочки в пространство имен, предпочтительно сценарий оболочки bash, но я бы посмотрел другие оболочки, если бы они имели эту функцию, а bash - нет. Под этим я подразумеваю, например, что-то вроде «префикса всех определенных символов чем-либо, чтобы они не сталкивались с уже определенными символами (именами …
10 shell 

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