jav*_*top 4 linux bash shell braces
我需要大括号来指定表达式的计算优先级,但我不希望大括号创建子脚本。看看当示例代码运行时会发生什么:
#!/bin/bash
false || (echo "First" && exit 1)
false || (echo "Second" && exit 2)
exit 3
Run Code Online (Sandbox Code Playgroud)
First
Second
Run Code Online (Sandbox Code Playgroud)
似乎大括号创建子脚本,其中退出不会导致主脚本退出。
做我想做的最优雅的方式是什么?最好没有块和嵌套。谢谢!
这些()是括号,它们启动一个子shell
这些{}是大括号,它们用于在当前 shell 中进行分组。exit将退出您的脚本。
注意空格要求更严格({后面需要跟空格;}前面需要分号加空格,或者换行)
false || { echo foo; echo bar; } # this is OK
false || {echo foo; echo bar} # not OK
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅手册中的分组命令。