Практическое написание сценариев командной оболочки Bash/Bash подстановки: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 232:
# Результат: "one two"
</source>
Вы уже наверное догадались, что результат подстановки должен быть верным в контексте, в который он подставляется. Команда в подстановке может быть сложной, в том числе, это может быть целая процедура.
<source lang=bash>
#!/bin/bash
declare -ar SUBCOMMANDS=("algo1" "algo2" "algo3")
# В этом примере мы формируем описание одной из опций гипотетической утилиты в функции <code>usage()</code>.
usage() {
printf "
$0 Some utility.
Options:
-r $(
for s in ${SUBCOMMANDS[*]}; do printf "$s|"; done
)
<${SUBCOMMANDS[0]}>
Description of the algorithm 1
<${SUBCOMMANDS[1]}>
Description of the algorithm 1
<${SUBCOMMANDS[2]}>
Description of the algorithm 1
"
}
usage
# Вывод:
#
# ./dummy.sh Some utility.
#
# Options:
# -r algo1|algo2|algo3|
# <algo1>
# Description of the algorithm 1
# <algo2>
# Description of the algorithm 1
# <algo3>
# Description of the algorithm 1
#
</source>
Из-за плохой производительности вложенных конструкций, их следует использовать для фрагментов кода, которые вызываются относительно редко.
== Подстановка результата из подоболочки через автоматический файл ==
|