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