在这个bash脚本中EOL分号的用途是什么?

时间:2015-11-10 07:59:13

标签: bash

我正在尝试调整我为监视器布局脚本找到的code

...
while read l 
do 
  dir=$(dirname $l); 
  status=$(cat $l); 
  dev=$(echo $dir | cut -d\- -f 2-); 

  if [ $(expr match  $dev "HDMI") != "0" ]
...

根据Bash手册页:分号可以是元字符或控制操作符。

我理解元字符用法是针对同一行上的连续命令。在这种情况下,它是否被用作控制操作员?我之前没有用过这种方式,脚本在没有它的情况下运行。我不想在不理解其目的的情况下删除或保留它。

3 个答案:

答案 0 :(得分:1)

不,在这种情况下你不需要分号。如果在一行上有多个命令,则需要在bash中使用分号。下面是bash中经常使用分号以使其更具可读性的示例:

if [ $a -gt 12 ]; then

您在此处看到,ifthen是两个不同的命令,但您可以使用分号将它们放在同一行上,这使得我认为代码更易于阅读。

答案 1 :(得分:1)

可能一直在进行一些思考过程

  • “即使连接成一行也应该执行”或
  • “这是创建最初来自一行”。

但在这种情况下,您需要在whileif行的末尾添加其他分号才能使其正常工作。

所以,不,他们没有任何目的,而不是相关程序员的坏习惯。

答案 2 :(得分:0)

根据@ anubhava对问题的评论"

  

没有明显的理由......