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
이것은 변수 할당입니다. 이 경우 a
null 값으로 설정한 변수는 ''
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
하지만 몇 가지 주의사항이 있습니다.