-eq: 単項演算子が必要です。 【解除】

-eq: 単項演算子が必要です。 【解除】
x=$?
if [ ${x} -eq '0' ]; then
echo "something missing"
exit 1
else
echo "all present"
fi

上記のコマンドを実行する-eq: unary operator expectedと、なぜこれが起こりますか?

私がやっていることのより完全なバージョン:

`cat ${2}` にあるファイル #$2 の場合は file.txt です。
する
    もし[! -f "${1}/${file}"] # $1 はパスです。
    それから
        echo "$fileがありません"
        ノートーク=$?
    フィリピン諸島
完璧
if [ ${notok} -eq 0 ];
それから
    echo「確認が必要です」
    1番出口
その他
    echo "すべてのファイルが存在します"
フィリピン諸島

ベストアンサー1

変数がx定義されていないようです。

試してみてください

if [ ${x-1} -eq 0 ]

定義または定義されていない場合、値は${x-1}と評価されます$x1

あるいは、以前にコマンドがあったと仮定して使用する方x=$?が良いでしょう。

if cmd arg1 ... argn
then
    # true
else
    # false
fi

おすすめ記事