我有一個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