Ser*_*nyy 78 bash shell-script
我曾经相信打破列表中线条的适当方法是
command1 && \
command2
Run Code Online (Sandbox Code Playgroud)
原来不是这样,一个不需要 \
$ [ $(id -u) -eq 1000 ] &&
> echo yes
yes
Run Code Online (Sandbox Code Playgroud)
|
以同样的方式处理管道。
关于流水线和列表的 bash 手册页部分没有对此进行任何说明。因此,我的问题是:\
打破长行的正确用法是什么?
cho*_*oba 95
如果该语句在没有继续的情况下是正确的,则需要使用\
. 因此,以下内容无需反斜杠即可工作,因为您不能以 结束命令&&
:
echo 1 &&
echo 2
Run Code Online (Sandbox Code Playgroud)
在这里,您需要反斜杠:
echo 1 2 3 \
4
Run Code Online (Sandbox Code Playgroud)
或者
echo 1 \
&& echo 2
Run Code Online (Sandbox Code Playgroud)
否则,bash 会在处理完第一行后立即执行命令,而不会等待下一行。
sau*_*ure 32
我在一家大型 IT 公司的职业生涯中遇到的脚本风格指南之一要求我在 shellscript 中每行使用不超过 80 个字符,并在断行后缩进。另外,我必须在管道或 && 或 || 之前换行。喜欢 :
command1 \
&& command2 \
|| command3 \
| command4
Run Code Online (Sandbox Code Playgroud)
目标是具有清晰的可读性。