2016-05-10 68 views
1

我正在處理一個shell腳本,我收到一個錯誤,說測試:參數期望。它基本上是一個sed命令,然後檢查是否有任何錯誤,請找到下面測試:參數期望

sed "s|${var1}|${var2}|g" $FILE_PATH$FILE_NAME > /tmp/$FILE_NAME 

if [ "$command_error" != 0 ] ; then 
     date 
     echo "Error $command_error reading file $WS_FILE" 
     echo "File Does not exist or is not readable" 
     exit 30 
fi 
+0

忽略命令錯誤周圍的雙引號 – SSR

+0

爲什麼'$ command_error'不是空字符串?它在哪裏設置?除此之外,與整數比較應該使用'-ne'而不是'!='。 –

+0

嗨,我是shell腳本新手。那麼這是否意味着我需要將sed命令設置爲$ command_error。如果是這樣,我得到一個錯誤=未找到sed。我將它設置爲:$ command_error = sed「s | $ {var1} | $ {var2} | g」$ FILE_PATH $ FILE_NAME>/tmp/$ FILE_NAME – SSR

回答

1

什麼殼您正在使用

我認爲你缺少的行:

command_error=$? 
兩個塊之間

。 請注意,許多(all?)命令(例如echo $?)實際上會改變它的值。因此,分配$是個好主意?到像這樣的臨時變量。