Articles of сценариев

Страtagsя забыть запустить скрипт с `source`?

Я хотел бы написать скрипт для доступа к состоянию интерактивной оболочки bash, например, скрипт содержит команды, такие как jobs , dirs , pushd и popd . Поэтому моя страtagsя заключается в том, чтобы при запуске сценария использовать скрипт в оболочке. Но я часто забываю об этом и некоторое время путаюсь, в зависимости от того, как […]

Почему этот код работает в bash v4.4, а не в bash v3.2?

У меня есть следующий скрипт bash: #!/bin/bash encl0=( 0,0 0,1 0,2 0,3 0,4 0,5 0,7 0,8 0,9 0,10 0,11 0,12 0,13 0,14 0,15 ) MISSING_DISKS=() OLDIFS=$IFS IFS=$’\n’ MISSING_DISKS+=($({ printf ‘0 %s\n’ {0..15}; printf ‘0 %s\n’ “${encl0[@]#0,}”; } | sort | uniq -u)) IFS=$OLDIFS echo “$({ printf ‘0 %s\n’ {0..15}; printf ‘0 %s\n’ “${encl0[@]#0,}”; } | […]

Пример сценария оболочки, чтобы остановить выполнение всех процессов с определенным UID?

Я не могу найти какие-либо примеры в Интернете для этой конкретной задачи.

Как я могу предоставить массив в качестве позиционного параметра для функции или сценария?

В моем сценарии я обнаружил, что некоторые операции над массивом можно использовать повторно. Поэтому я рассматриваю возможность рефакторинга повторно используемого кода в функцию или скрипт. Однако как я могу написать функцию или скрипт, чтобы я мог предоставить массив в качестве позиционного параметра для функции или скрипта? или добиться чего-то похожего? Благодарю.

Как мне повторно использовать функцию в нескольких скриптах?

В bash иногда я хотел бы повторно использовать функцию в нескольких скриптах. Разве плохо повторять определение функции во всех скриптах? Если так, что является хорошей практикой? Является ли следующий способ хорошей идеей? оберните определение функции myfunction в ее собственный скрипт define_myfunction.sh , в любом скрипте, где вызывается функция, source define_myfunction.sh , а затем вызовите функцию […]

Nginx.conf блокирует сервер для разделения .conf на основе имени_сервера

Я просто смотрел на вопрос здесь: извлекать блоки серверов из Nginx conf, но пропустил закрывающий ‘}’ для блока сервера, и я хочу извлечь все блоки сервера в файле nginx.conf для разделения файлов .conf на первое имя_сервера каждого блока. файл может выглядеть так: server { # php/fastcgi listen 80; server_name domain1.com www.domain1.com; access_log logs/domain1.access.log main; root […]

Добавить что-то к переменной bash, которая содержит вывод команд

Это- $a=`ls` | do something | etc. | etc. | etc… echo “$a” дает это- file1 file2 file3 Но я хочу добавить кое-что в конец этой переменной, поэтому я попытался a=${a}\nfile4 Но я понимаю, что file1 file2 file3nfile4 # wrong!

Запустите скрипт при запуске как root после того, как все закончится

У меня есть устройство IoT с дистрибутивом Linux для Linux. Нет crontab , chkconfig или update-rc . Как мне запустить скрипт при запуске устройства после того, как все на нем было загружено? Я думал, что смогу просто добавить скрипт в /etc/init.d но ничего не происходит. Это сценарий, который я использую. #! /bin/sh -e # /etc/init.d/camstart […]

Как я могу использовать цикл для создания нового ФАЙЛА в каждом / home каталоге, кроме / home / lost + found

#!/bin/sh for file in /home/* do if [ “{$file}” != “/home/lost+found” ] then touch $file/FILE1 done Чего я хочу добиться, так это того, чтобы я прошел через все каталоги / home / и сделал в каждом ona файл, кроме / home / lost + found . Что я делаю неправильно?

Генерация списка IPv6 в массив

Я написал этот сценарий некоторое время назад: #!/bin/bash #Default number of IPs NUM_IPS=48 if [ “$1” != “” ]; then NUM_IPS=$1 fi #Example of IPv6 supplied 2001:41d0:0303:6e1b::/64 read -p “Starting IPv6 : ” IPv6 IPv6_c=$(echo $IPv6 | sed -e ‘s/\/64//g’ | sed -e ‘s/:*$//g’) IPv6_e=$(sed -e ‘s#.*:\(\)#\1#’ <<< "$IPv6_c") IPv6_s=$(echo $IPv6_c | sed -e "s/$IPv6_e//g") […]