Bash ifステートメントが正しく機能しません。

Bash ifステートメントが正しく機能しません。

コマンドライン引数をテストするbashステートメントがあります。スクリプトに渡された引数が「clean」の場合、スクリプトはすべての.oファイルを削除します。それ以外の場合はプログラムをビルドします。ただし、何でも渡されても、スクリプトはまだ "clean"パラメータが渡されたと見なします。

#!/bin/bash
if test "`whoami`" != "root" ; then
    echo "You must be logged in as root to build (for loopback mounting)"
    echo "Enter 'su' or 'sudo bash' to switch to root"
    exit
fi
ARG=$1
if [ $ARG=="clean" ] ; then
    echo ">>> cleaning up object files..."
    rm -r src/*.o
    echo ">>> done. "
    echo ">>> Press enter to continue..."
    read
else
    #Builds program
fi

ベストアンサー1

[引数をスペースで区切る必要があります。また、恒等演算子は単一で=あるため、両方を引用する必要があります。

if [ "$ARG" = "clean" ]; then

おすすめ記事