编写好shell后,在执行之前最好先进行下语法检查(可不是通过肉眼一行行去看哦),当然是通过shell命令来检查了。

bash -n script_name.sh
-n选项只做语法检查,而不执行脚本。

下面新建一个t.sh文件来做个演示

  1 #!/bin/bash
  2 
  3 set -x
  4 
  5 a=1
  6 while [[ $a -le 5]]; 
  7 do
  8     echo $a 
  9     let "a+=1"
 10 done

上面的shell脚本第6行有一个错误,通过shell脚本的语法检查命令可以得到下面输出

# bash -n t.sh 
t.sh: line 6: syntax error in conditional expression: unexpected token `;'
t.sh: line 6: syntax error near `;'
t.sh: line 6: `while [[ $a -le 5]]; '

发现时少了一个空格导致的,修改后再执行bash -n t.sh没有任何输出,表示没有语法错误了。

  1 #!/bin/bash
  2 
  3 set -x
  4 
  5 a=1
  6 while [[ $a -le 5 ]]; 
  7 do
  8     echo $a 
  9     let "a+=1"
 10 done

转载请注明:知识蚂蚁 » linux中的shell脚本语法检查

我来说说

(便于我们更好的交流)

有不明白的地方欢迎留言哦~
取消