Tag: bash

Существует ли параметр shob glob или параметр combo, который ведет себя как tcsh?

Я перешел от того, чтобы быть долгое время пользователем tcsh, к новому пользователю bash (это слишком давно). Я написал много циклов foreach в tcsh на лету на регулярной основе, поэтому я выучил синтаксис для циклов bash for в качестве замены, но был удивлен, когда несоответствующие шаблоны глобуса проходили через цикл в виде буквенных строк. Я […]

Перебирать переменные

Я пишу bash-скрипт для использования rsync и обновления файлов примерно на 20 разных серверах. Я разобрался с Rsync. У меня проблемы с просмотром списка переменных. Мой сценарий до сих пор выглядит так: #!/bin/bash SERVER1=”192.xxx.xxx.2″ SERVER2=”192.xxx.xxx.3″ SERVER3=”192.xxx.xxx.4″ SERVER4=”192.xxx.xxx.5″ SERVER5=”192.xxx.xxx.6″ SERVER6=”192.xxx.xxx.7″ for ((i=1; i<7; i++)) do echo [Server IP Address] done Где [Server IP Address] должен быть […]

Как я могу пропустить оставшуюся часть сценария, не выходя из вызывающей оболочки, при поиске сценария?

У меня есть скрипт bash, где я вызываю exit где-нибудь, чтобы пропустить оставшуюся часть скрипта, когда getopts не распознает опцию или не находит ожидаемый аргумент опции. while getopts “:t:” opt; do case $opt in t) timelen=”$OPTARG” ;; \?) printf “illegal option: -%s\n” “$OPTARG” >&2 echo “$usage” >&2 exit 1 ;; 🙂 printf “missing argument for […]

Ошибка при использовании ‘if’ со счетчиком в Bash

Что не так со следующим? Я получаю ошибку [: too many arguments . if [ ‘wc -l pid.txt | awk ‘{print $1}” -ge “1” ] then for line in $(cat pid.txt) do kill $line done else rm pid.txt fi

Использовать read как подсказку внутри цикла while, управляемого read?

У меня есть случай использования, когда мне нужно читать несколько переменных в начале каждой итерации и читать входные данные пользователя в цикле. Возможные пути к решению, которые я не знаю, как исследовать – Для назначения используйте другой дескриптор файла вместо стандартного ввода Используйте цикл вместо … | while read … … | while read … […]

bash как улучшить этот скрипт

Я новичок в сценариях оболочки, и я хотел бы знать, может быть, есть лучшее решение, чем то, которое я выяснил Я хочу проверить, есть ли пользователь в списке, и если да, то сценарий должен завершиться с помощью функции exit_program: $ USER определяется как кто-то, кто входит в систему Мое решение (это работает): $IGNORE_USER=”USER1 USER2 USER3″ […]

bash echo командная строка, выполняемая в самой командной строке (не в скрипте)

В целях документации я имею в виду redirect в файл stdout и stderr из команды, которую я выполняю. Например, я бы запустил (моя команда менее тривиальна, чем псевдоним ll но, вероятно, это не имеет значения): $ ll > out-err.dat 2>&1 $ cat out-err.dat drwxr-xr-x 39 us00001 us00001 4096 jul 31 14:57 ./ drwxr-xr-x 3 root […]

Debian su – и su $ PATH различия?

$ su – Password: # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # exit logout $ su Password: # echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games Я понятия не имею, почему / bin и / sbin не добавляются в $PATH , если я делаю просто su. Раньше так и было. Как я могу это исправить? Я заметил, что: -rw-r–r– 1 root root 0 […]

Несколько команд в sshpass

Есть ли способ использовать несколько команд в sshpass , я пробовал с комбинациями различий, но он выдает ошибку. $ sudo sshpass -p $password ssh -t -oStrictHostKeyChecking=no $username@$ipaddress << EOF command_one command_two command_three EOF Какова правильная и точная команда, пожалуйста, предоставьте мне пример, если это возможно.

Использование переменных оболочки для параметров команды

В скрипте Bash я пытаюсь сохранить параметры, которые я использую для rsync в отдельной переменной. Это прекрасно работает для простых опций (например, –recursive ), но у меня возникают проблемы с –exclude=’.*’ : $ find source source source/.bar source/foo $ rsync -rnv –exclude=’.*’ source/ dest sending incremental file list foo sent 57 bytes received 19 bytes […]

Linux и Unix - лучшая ОС в мире.