if文を使用すると問題が発生するエラー - > [: `]'がありません

if文を使用すると問題が発生するエラー - > [: `]'がありません
#!/bin/bash

for (( x=7; x <= 65; x+=2 )) 

do


    if [ $x!=57 && $x!=59 && $x!=29 && $x!=53 ]
    then
        cd charged_$x 
        cp -f ~aman/user_ana_normal_mode/Testforaman/user_ana.so .
        cd ..
    fi

done

問題が見つかりません。助けてください

ベストアンサー1

[ $x!=57 && $x!=59 && $x!=29 && $x!=53 ]

[と同じ規則に従うコマンドですls&&条件に応じてコマンドをグループ化するシェル方式です。で、[ foo && bar ]シェルはコマンドを実行し[ foo、成功すると実行しますbar ]。コマンドはaを最後の引数と[見なして失敗するため、2番目のコマンドは実行されません。]

[[ .. ]]ただし、特殊条件構文はこれをサポートしているため、&&使用できます[[ $x != 57 && $x != 59 && ... ]]。演算子の周りにはまだ空白が必要です。 Plainは空でない文字列を$x!=57テストするために使用され、$x!=57値に関係なく常に空でない文字列になりますx

または、次の]場所に最後の文章を入れてください&&[ "$x" != 57 ] && [ "$x" != 59 ] && ...

おすすめ記事