我有一個需要組命令用我的shell腳本,大括號,這樣我可以指揮他們輸出到單獨的日誌文件是這樣的...如何從大括號內退出bash shell腳本?
>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
>
雖然我已經添加了支撐,以方便記錄捲曲,我仍然希望腳本在退出命令在花括號內被調用時退出。
它當然不這樣做。它只是退出大括號,然後繼續上執行的,像這樣的腳本的其餘部分...
>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.現在正在將你的一些錯誤的shell語法轉換成笑臉。祝你們好運! – shellter