1. ホーム
  2. bash

[解決済み] bashの文字列の等値性テストで、予期しない演算子エラーが発生するのはなぜですか?重複

2022-02-09 17:52:01

質問

4行目のエラーはどこですか?

if [ $bn == README ]; then

と書くと、やはり

if [ $bn == README ]
then

または

if [ "$bn" == "README" ]; then

コンテキストを表示します。

for fi in  /etc/uwsgi/apps-available/* 
do 
        bn=`basename $fi .ini`
        if [ $bn == "README" ]
        then
                echo "~ ***#*** ~"
        else
                echo "## Shortend for convience ##"
        fi
done

解決方法は?

単一括弧の比較([ ])には==を使用できません。代わりにシングル = を使ってください。また、拡張を防ぐために変数を引用符で囲む必要があります。

if [ "$bn" = README ]; then

もし、[[ ]]を使えば、それが適用され、最初の引数を引用する必要はないでしょう。

if [[ $bn == README ]]; then