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

sh является стандартной оболочкой Unix начиная с Версии 7 Unix. POSIX имеет стандартизированное поведение оболочки на основе Bourne Shell, и сценарии переносимой оболочки должны соответствовать стандартизированному синтаксису. Используйте этот тег для вопросов, относящихся к оболочкам в стиле Bourne / POSIX. Для сценариев оболочки с ошибками, пожалуйста, проверьте их в http://shellcheck.net перед публикацией здесь.

26
Как проверить, содержит ли строка подстроку в Bash
У меня есть строка в Bash: string="My string" Как я могу проверить, содержит ли она другую строку? if [ $string ?? 'foo' ]; then echo "It's there!" fi Где ??мой неизвестный оператор. Я использую эхо и grep? if echo "$string" | grep 'foo'; then echo "It's there!" fi Это выглядит …
2576 string  bash  shell  substring  sh 

12
Разница между sh и bash
При написании программ оболочки мы часто используем /bin/shи /bin/bash. Я обычно использую bash, но я не знаю, в чем разница между ними. Какая основная разница между bashа sh? Что мы должны знать при программировании bashи sh?
1305 bash  shell  unix  sh 

21
Как я могу объявить и использовать логические переменные в сценарии оболочки?
Я попытался объявить логическую переменную в сценарии оболочки, используя следующий синтаксис: variable=$false variable=$true Это правильно? Кроме того, если бы я хотел обновить эту переменную, я бы использовал тот же синтаксис? Наконец, правильный ли следующий синтаксис для использования булевых переменных в качестве выражений? if [ $variable ] if [ !$variable ]
981 bash  shell  scripting  boolean  sh 

13
Как отобразить команды оболочки при их выполнении
В сценарии оболочки, как я повторяю все вызванные команды оболочки и раскрываю имена любых переменных? Например, с учетом следующей строки: ls $DIRNAME Я хотел бы, чтобы скрипт запускал команду и отображал следующее ls /full/path/to/some/dir Цель - сохранить журнал всех вызванных команд оболочки и их аргументов. Возможно, есть лучший способ создания …
913 bash  shell  sh  posix  trace 

7
Что означает set -e в скрипте bash?
Я изучаю содержимое этого файла preinst, который скрипт выполняет перед тем, как этот пакет будет распакован из файла архива Debian (.deb). Скрипт имеет следующий код: #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then echo "MyApplicationName is just …
714 linux  bash  shell  sh 

8
Как сделать логическую операцию ИЛИ в сценариях оболочки
Я пытаюсь сделать простую проверку состояния, но это не похоже на работу. Если $#равно 0или больше, чем 1тогда сказать привет. Я пробовал следующий синтаксис без успеха: if [ "$#" == 0 -o "$#" > 1 ] ; then echo "hello" fi if [ "$#" == 0 ] || [ "$#" …
571 bash  unix  if-statement  sh 


5
Ошибка команды при назначении переменной Bash
У меня есть этот скрипт с именем test.sh: #!/bin/bash STR = "Hello World" echo $STR когда я бегу, sh test.shя получаю это: test.sh: line 2: STR: command not found Что я делаю неправильно? Я смотрю на очень простые / начинающие учебники по bash-скриптингу онлайн, и вот как они говорят, чтобы …

6
Как прочитать файл в переменную в оболочке?
Я хочу прочитать файл и сохранить его в переменной, но мне нужно сохранить переменную, а не просто распечатать файл. Как я могу это сделать? Я написал этот скрипт, но это не совсем то, что мне было нужно: #!/bin/sh while read LINE do echo $LINE done <$1 echo 11111----------- echo $LINE …
489 shell  unix  sh 

10
Как получить пароль из сценария оболочки, не повторяя
У меня есть скрипт, который автоматизирует процесс, который требует доступа к системе, защищенной паролем. Доступ к системе осуществляется через программу командной строки, которая принимает пароль пользователя в качестве аргумента. Я хотел бы предложить пользователю ввести свой пароль, назначить его переменной оболочки, а затем использовать эту переменную для создания командной строки …
424 bash  shell  scripting  sh 

22
Как выполнять команды монго через скрипты оболочки?
Я хочу выполнять mongoкоманды в сценарии оболочки, например, в сценарии test.sh: #!/bin/sh mongo myDbName db.mycollection.findOne() show collections Когда я выполняю этот скрипт через ./test.sh, тогда соединение с MongoDB установлено, но следующие команды не выполняются. Как выполнить другие команды через скрипт оболочки test.sh?
404 mongodb  bash  shell  sh 

2
Как разделить команду оболочки на несколько строк при использовании оператора IF?
Как разделить команду на несколько строк в оболочке, если команда является частью ifоператора? Это работает: if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1 fi Это не работает: # does not work: if ! fab --fabfile=.deploy/fabfile.py \ --forward-agent \ --disable-known-hosts deploy:$target; then rc=1 fi Вместо выполнения всей команды я получаю: …
386 syntax  sh 

24
Как я могу получить поведение readlink -f GNU на Mac?
В Linux readlinkутилита принимает опцию, -fкоторая идет по дополнительным ссылкам. Это не работает на Mac и, возможно, на системах BSD. Каким будет эквивалент? Вот некоторая отладочная информация: $ which readlink; readlink -f /usr/bin/readlink readlink: illegal option -f usage: readlink [-n] [file ...]
377 macos  freebsd  sh 

11
Как получить перевод строки в sh?
это STR="Hello\nWorld" echo $STR производит как выход Hello\nWorld вместо того Hello World Что я должен сделать, чтобы иметь новую строку в строке? Примечание: этот вопрос не об эхо . Я знаю echo -e, но я ищу решение, которое позволяет передавать строку (которая включает символ новой строки) в качестве аргумента другим …
340 sh 

18
Как запустить задание cron внутри Docker-контейнера?
Я пытаюсь запустить cronjob внутри контейнера Docker, который вызывает сценарий оболочки. Вчера я искал во всем Интернете и переполнение стека, но я не мог найти решение, которое работает. Как я могу это сделать? РЕДАКТИРОВАТЬ: Я создал (прокомментированный) репозиторий github с рабочим контейнером cron Docker, который вызывает сценарий оболочки с заданным …
275 docker  cron  containers  sh 

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