从文件中提取值以输入IF语句

时间:2017-03-10 03:26:57

标签: bash shell

我有一个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"在顶部,但也没有工作。花了一天,到目前为止没有运气。

2 个答案:

答案 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