首页 > 解决方案 > 检查 bash 脚本的第一行,如果 # 可用则跳过该脚本

问题描述

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

标签: bashawk

解决方案


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

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

read -r p </tmp/abc

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

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

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

你也可以使用

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


推荐阅读