명령줄 인수를 테스트하는 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