Bash
如果命令返回非零退出程式碼,則提供預設值
我在文件中有一些配置,
config
並且想要cat
那個文件。然而,有時config
並不存在。在這種情況下,我想讓我的命令輸出一個預設值。也許像這樣工作的東西:
$ ls $ cat config || echo 42 42 $ echo 73 > config $ cat config || echo 42 73
你的構造很好。你甚至可以做類似的事情
cat config || cat defaultconfig
如果您使用一些隨機命令(如
./get_config_from_web
註釋中的),則必須確保該命令確實給出了合理的返回狀態。這可能很棘手,shell 腳本只返回執行的最後一個命令的結果,exit
如果您想要其他結果,則必須執行 a。
對於任何未擷取的錯誤情況,以下將回顯 42:
trap "echo 42" ERR
您可以將其設為可配置變數:
trap 'echo "${CONFIG:=42}"' ERR # if $CONFIG is not set, it will be defaulted to 42