检查bash脚本的第一行,如果#可用,则跳过脚本

时间:2018-05-24 17:03:08

标签: bash awk

我想查看脚本的第一行,如果第一行是#,脚本不应该运行我想出了这个不确定它是否正确的语法和登录p = cat -n1 / tmp / abc | awk' {print $ 1}如果[$ p ="#" ]。然后退出0 fi

2 个答案:

答案 0 :(得分:3)

要将程序的输出分配给使用variable$(command)的变量。

但是你不需要执行像awk这样的程序来获取文件的第一行,只需使用

read -r p </tmp/abc

您的awk命令返回每个行的第一个字段,而不仅仅是第一行。

除非您确定需要允许对结果进行分词和/或通配符扩展,否则应始终将变量放在引号中。由于文件的第一行可能包含空格,因此这在您的脚本中很重要。

read -r p </tmp/abc
if [ "$p" = "#" ]
then exit 0
fi

您也可以使用

将文件的第一行读入变量。

答案 1 :(得分:0)

您可以使用head,然后test提取第一行,看它是否与#字符匹配:

if [ x"$(head -n1 $pathtoscript)" == x"#" ] ;then
   echo "Won't run"
   exit
fi