У меня есть потребность в группу команд, используя фигурные скобки в моем сценарии оболочки, так что я могу направить свою продукцию, чтобы отделить файлы журналов, как так ...Как выйти из сценария оболочки bash изнутри фигурных скобок?
>cat how-to-exit-script-from-within-curly-braces.sh
{
printf "%d\n" 1
printf "%d\n" 2
} | tee a.log
{
printf "%d\n" 3
printf "%d\n" 4
} | tee b.log
>./how-to-exit-script-from-within-curly-braces.sh
1
2
3
4
>cat a.log
1
2
>cat b.log
3
4
>
Хотя я добавил фигурный приготовился, чтобы облегчить ведение журнала, Мне все равно хотелось бы, чтобы скрипт вышел, когда вызывается команда exit внутри фигурных скобок.
Это не так, конечно. Она выходит только фигурные скобки, а затем продолжает выполнение оставшейся части сценария, как так ...
>cat how-to-exit-script-from-within-curly-braces.sh
{
printf "%d\n" 1
exit
printf "%d\n" 2
} | tee a.log
{
printf "%d\n" 3
printf "%d\n" 4
} | tee b.log
>./how-to-exit-script-from-within-curly-braces.sh
1
3
4
>cat a.log
1
>cat b.log
3
4
>
делает код выхода ненулевым и добавление «набор -e», чтобы скрипт не появляется на работу ...
>cat how-to-exit-script-from-within-curly-braces.sh
set -e
{
printf "%d\n" 1
exit 1
printf "%d\n" 2
} | tee a.log
{
printf "%d\n" 3
printf "%d\n" 4
} | tee b.log
>./how-to-exit-script-from-within-curly-braces.sh
1
3
4
>cat a.log
1
>cat b.log
3
4
>
Есть ли способ принудительно выйти из сценария изнутри фигурных скобок?
Хороший Q, за исключением смайликов (я чувствую сварливость; ->), но не был уверен, что S.O. теперь преобразовывал какой-то ошибочный синтаксис вашего синтаксиса в смайлик. Всем удачи! – shellter