我有一个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配置”在顶部,但也没有工作。花了一天,没有运气到目前为止。
所有这些检查应该工作。请创建一个演示问题的[mcve]。 –
'$ config'很可能包含不可见的空白,就像'\ r'回车一样。试试'cat -A <<<“$ config”'来检查。 'file/mnt/writable/config.txt'是否报告该文件具有DOS行结束符? –
假设你正在使用bash,首先要做的事情是在脚本开始处设置-xv并检查实际设置和测试的值。您将变量设置为整行,因此任何其他空白也将被分配给变量,因此它不会等于“1”。我建议使用read来获取变量中的值,然后使用(())对数字1进行测试: - ((config == 1)),因为数字以这种方式进行测试,并明确表示您是进行算术测试。 – grail