我有一个config.txt文件,其中第一行的编号为1,我需要阅读此内容并根据编号是1还是2或3等执行某些任务
问题是我无法测试该配置值,下面的if语句都没有工作,我尝试了更多的差异。
config=$(head -n 1 /mnt/writable/config.txt) #grabs vale from file
echo $config #prints 1
但是以下if语句不会回显任何内容。
if [[ "$config" = "1" ]];
then
echo "is a 1";
fi
if [[ "$config" == "1" ]];
then
echo "is a 1";
fi
if [[ "$config" = 1 ]];
then
echo "is a 1";
fi
if [ $config = 1 ];
then
echo "is a 1";
fi
我也试过"声明-i config"在顶部,但也没有工作。花了一天,到目前为止没有运气。
答案 0 :(得分:0)
因为你的第一行有空格或标签(我认为)
因此,如果您使用
进行打印echo $config
它会正确打印1但是当你在条件中使用它时,它可能无法正常工作......
所以我建议您在脚本中尝试使用
config=$(head -n 1 /mnt/writable/config.txt | tr -d '[:space:]')
并且所有if条件都可以。
答案 1 :(得分:-1)
可以使用-eq选项测试整数相等性。
是否有人测试是否有条件的进一步细节。
if [ $config -eq 1 ]; then echo "config is 1"; else echo "config is not 1"; fi