Articles of shell script

Значение && вернуть 0

Мне нужно понять эту команду: [ $? == 1 ] && return 0

bash – True, если длина строки (не) равна нулю?

# touch $$ # gzip $$ # gzip –test $$.gz # echo $? 0 # OUT=$(gzip –test $$.gz) # echo $OUT # if [ -z $OUT ] ; then echo $$ ; fi 26521 # if [ -n $OUT ] ; then echo $$ ; fi 26521 # из bash(1) -z string True if the […]

Сценарий оболочки Unix с использованием оболочки Expect

Я пишу скрипт для сбора уровней микро-кода для адаптеров на каждом сервере в AIX, используя оболочку Expect. #!/bin/ksh for hostname in ABCD123 ABCD234 ABCD445 do expect << 'EOS' set hos {$hostname} spawn ssh padmin@$hostname expect "Password:" send "ABC1234\n" expect "$" send "oem_setup_env\n" expect "#" send "lsmcode -A | sed -e 's/^/$hos: /'\n" expect "#" send […]

Сбросить текст, прежде чем отправлять в sed

Я перехожу к sed для замены текста, который, кажется, содержит некоторые символы, которые ему не нравятся. Текст взят из git log graph и выглядит примерно так: ID- desc author ID- desc author Я получаю unescaped newline inside substitute pattern Как я могу избежать всего, перед тем как обрушиться Example: COMMIT=$(git log my_branch…origin/master –pretty=format:’%h %an’) FINAL=$(cat […]

Использование «$ {a: -b}» для назначения переменных в скриптах

Я смотрел на несколько сценариев, написанных другими людьми (в частности, на Red Hat), и многие их переменные присваиваются с использованием следующей записи VARIABLE1=”${VARIABLE1:-some_val}” или некоторых других переменных VARIABLE2=”${VARIABLE2:-`echo $VARIABLE1`}” Какой смысл использовать эту запись вместо простого объявления значений (например, VARIABLE1=some_val )? Есть ли преимущества в этой записи или возможные ошибки, которые можно было бы предотвратить? […]

Можно ли запустить команду bash из Windows через соединение samba?

Теперь, прежде чем вы закончите думать: «Дорогой Бог! Почему ты хочешь это допустить?!?», Мне интересно, возможно ли это. То, что я пытаюсь решить, может быть решено другими способами, но это помещает это в функциональную сферу других, не * nix-y администраторов на моем рабочем месте. Чего я хочу добиться: иметь ярлык / файл / что-у-у-вас, чтобы […]

Является ли анализ сценариев во время выполнения сценария повсеместным для оболочек или присутствует в других интерпретаторах и как это работает?

Я всегда думал, что оболочки разбирают целые сценарии, конструируют AST, а затем выполняют это AST из памяти. Тем не менее, я только что прочитал комментарий Стефана Шазеласа и проверил выполнение этого скрипта edit- while-executing.sh: #!/bin/bash echo start sleep 10 а потом пока он спал бегом $ echo “echo end” >> edit-while-executing.sh и он работал, чтобы […]

Как передать переменную в шаблон при использовании команды sed?

У меня есть файл abc.sh search_dir=’dummy’ filename=’numbers.txt’ for entry in “$search_dir”/* do while read p; do sed -i ” “/$p/d” $entry done < $filename done Попытка удалить строку с соответствующим шаблоном. По сути, шаблон – это просто строка, которую я передаю из файла. Но, к сожалению, это не работает. Что я могу отладить, так это […]

Лучшие практики для конфигурации сервера «сценарий установки»?

Мне нужно настроить сервер для запуска веб-приложения, которое само состоит из различных «стандартных» программных пакетов (Apache, PHP, MariaDB, несколько языков программирования), нескольких веб-приложений (включая Moodle) и компонентов, установленных из репозиториев git. (поскольку упакованные версии либо слишком стары, либо не существуют). В настоящее время мы используем Debian для этого, но (чтобы лучше соответствовать другим внутренним серверам), […]

Чтобы иметь возможность использовать переменную со значением $ в качестве текущего пользователя, а также другого пользователя через команду su

Предположим, что значение переменной имеет символ $ (путь хранения внутреннего classа Java). Я хочу обработать его как текущего пользователя, так и другого пользователя (предположим, что текущий пользователь является пользователем root поэтому мне не нужно вводить пароль при использовании команды su ). Пример: path_value=/home/username/filename\$1.class echo ${path_value} su username -c “echo ${path_value}” Результат первого echo : /home/username/filename$1.class […]