2016-05-10 14 views
1

シェルスクリプトで作業していますが、Test:Argument expectedとエラーが表示されています。その基本的にすべてのエラーテスト:引数が期待される

があったかどうかをチェックするに続く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

こんにちは、私はシェルスクリプトの初心者です。つまり、sedコマンドを$ command_errorに設定する必要があるということです。もしそうなら、= sedが見つかりません。私はそれを次のように設定しました:$ command_error = sed "s | $ {var1} | $ {var2} | g" $ FILE_PATH $ FILE_NAME>/tmp/$ FILE_NAME – SSR

答えて

1

の下に何シェルを使用しているを見つけてください!

は、私はあなたが行が欠落していると思う:2つのブロック間の

command_error=$? 

。 多くの(すべて?)コマンド(例えばecho $?)が実際に値を変更することに注意してください。したがって、$を割り当てるのは良い考えです。このような一時変数に追加します。

関連する問題