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

관련 정보