Сценарий оболочки с циклом for и "array"
Как я могу использовать этот sh-скрипт для цикла и массива.
Я хотел бы назвать домены с for loop
внутри if
. Пример:
for domain in $DOMAINS do printf '%s\n' "$domain" done
Итак, если вы добавите это под, то тогда printf
должен быть как? Например, wlstop
я хотел бы назвать, где printf
с wls wlstop $domain
.
- `Unhandled Exception: System.ArgumentNullException: значение не может быть ошибкой null.` при запуске` dotnet run` с использованием сценария запуска
- выход ограничения на выход И избежать сигнала 13
- Режим Vi или режим emacs во всей системе
- Помощь с использованием кавычек в поиске grep
- Как найти все файлы, соответствующие (или не соответствующие) конкретному шаблону в папке?
#!/usr/bin/sh ENV=$1 DOMAINS="1 2 3" wls (){ echo "$0 : $1 -v -d $2" $1 -v -d $2 } remove (){ echo "$0 : Removing /domains/$1/servers/*" set -x rm -rf /domains/$1/servers/* set +x } echo "$0 : Running wlsfullclean for $ENV" if [ "$ENV" = "Utv" ]; then #Stop domain wls wlsstop 1 wls wlsstop 2 wls wlsstop 3 #Remove content in servers folder remove 1 remove 2 remove 3 #wlsclean wls wlsclean 1 wls wlsclean 2 wls wlsclean 3 #wlscfi wls wlscfi 1 wls wlscfi 2 wls wlscfi 3 #Start server wls wlsstart 1 wls wlsstart 2 wls wlsstart 3 elif [ "$ENVI" = "Prod" ]; then echo "Prod" fi
- Как перечислить все существующие оптические драйверы?
- Не могу понять этот скрипт. bash << (curl -s http://xxx.com)
- dd: writing '/ dev / null': на устройстве нет места
- Сохранение и восстановление вкладок терминала с заголовком пользовательских вкладок
- Как реализовать механизм повтора при выполнении URL-адреса сервера в сценарии оболочки?
- История Бэша
- Как получить PID подоболочки в Korn Shell (эквивалент $ BASHPID)
- Если имя файла имеет более n символов, удалите последние
One Solution collect form web for “Сценарий оболочки с циклом for и "array"”
if [ Utv = "$ENV" ] then for domain in 1 2 3 do for wls in stop clean cfi start do wls wls"$wls" "$domain" [ stop != "$wls" ] || remove "$domain" done done fi
Поле in ...
является присвоением массива. Здесь вы назначаете итераторы цикла. Вы можете использовать предустановленный массив, или вы можете просто построить его, как я здесь. На самом деле не имеет смысла беспокоиться о назначении некоторой переменной оболочки с единственной целью присвоения массива for
loop – это в два раза больше работы, и не так легко отслеживать. Это, конечно, мое мнение.
В любом случае, поле in ...
фактически является необязательным, потому что есть предустановленный массив, который цикл for
умолчанию будет использовать в любом случае – массив аргументов оболочки. Именно по этой причине я считаю, что подобные вещи имеют больше смысла в функции оболочки.
wls_lp(){ for wls in stop clean cfi start do for domain do set -x -- "-${-:--}" ${-:+"--"} "$@" wls "wls$wls" "$domain" [ stop != "$wls" ] || remove "$domain" { set +x "$@"; } 2>/dev/null done;done }
Если вы поместите эту функцию в свой скрипт, вы можете просто запустить весь цикл над списком доменов, например:
if [ Utv = "$ENV" ] then wls_lp domain1 domain2 domain3 fi
- фильтровать текстовый файл xml
- Протирать файлы с внешнего жесткого диска, но не пустым пространством