Bash 스크립트에서 a=''는 무엇을 의미합니까?

Bash 스크립트에서 a=''는 무엇을 의미합니까?

a='' Bash 스크립트에서 의 뜻이 무엇인지 말해 줄 수 있는 사람이 있나요?

예를 들어:

 #!/bin/bash

    a=''
    case $@ in
    testfile)
             for list in $(cat $1);do

useradd -s /bin/false $list
         done
         ;;
$a)
         echo "empty"
         ;;
*)
         echo "wrong character"
         ;;
esac

감사해요

답변1

이것은 변수 할당입니다. 이 경우 anull 값으로 설정한 변수는 ''null로 평가됩니다.

Ilkachu는 다음과 같이 지적합니다.

using은 a=''실제로 a=""or를 사용하는 것과 다르지 않습니다.a=

CAS가 지적했듯이:

변수를 null(또는 초기/기본값)로 설정하면 해당 변수가 환경 변수(예: 상위 셸에서 내보낸 경우)인 경우 가질 수 있는 값을 사용하지 않게 됩니다. 예를 들어, 스크립트 자체에서 변수를 정의하지 않는 한 변수가 비어 있거나 정의되지 않았다고 가정하고 이에 따라 다른 작업을 수행하는 경우 문제가 될 수 있습니다.

스크립트 파일

#!/bin/bash

if [[ $1 == null ]]; then
    a=
elif [[ $1 == unset ]]; then
    unset a
fi

echo "${a:-test}"

실행 중:

$ export a=value
$ ./script.sh null
test
$ ./script.sh unset
test
$ ./script.sh
value
$ echo $a
value

대부분의 경우 변수를 null 값으로 설정하는 것은 변수를 설정 해제하는 것과 같습니다.unset a

하지만 몇 가지 주의사항이 있습니다.

마지막 하나

관련 정보