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と評価されます。
イルカチュは次のように指摘しています。
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
しかし、いくつかの注意事項があります。