2011-01-30 6 views
0

次のコードセグメントを実行すると、エラー "test:argument expected"が常に発生します。しかし、 "-e"を "-s"に変更すると、このエラーは消えます。このエラーを排除することはできますが、 "-e"は変更しないでください。"test:argument expected" "-e"オプションを使用してファイルをテストするときに適合

OAMPROXY_BKOUT_SPF="/var/ap/platform/rccCfgBkup/backout.spf" 
if [ -e ${OAMPROXY_BKOUT_SPF} ] && [ "${IS_GENERIC_RETROFIT}" = "no" ] 
then 
    # Do something here 
fi 

ありがとうございました!

+0

これは本当に変です。 '-f'を使うとどうなりますか? kshのどのバージョン?どのようなOSですか? –

+0

Red Hat Linuxでksh88を使用しました。この問題は、非常に大きなスクリプトを実行することによってのみ再生成することができるので、 '-f'をテストする時間はありません(KSHウィンドウで上記のkshコマンドを直接実行するとエラーは発生しません)。 – boyang

答えて

1

この問題は非常に大規模なスクリプトを実行することによって、再生産することができるので、私はあなたが上記実行した場合(エラーは発生しません」を聞くときに、

また
if [[ -e "${OAMPROXY_BKOUT_SPF}" && "${IS_GENERIC_RETROFIT}" = "no" ]] 
then 
    # do something 
fi 

として式を書き換えてみましたKSHのウィンドウで直接kshコマンドを実行してください。) '、私の経験では、エラーは実際にはフラグが立てられているエラーの上にあると言います。おそらく、間違った変数や、おそらく不一致の中かっこ/小括弧や引用符です。

-fを使ってテストする時間があるときには、同じエラーが発生します。

どうすればいいのか教えてください。

関連する問題