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と評価されます。

イルカチュは次のように指摘しています。

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

しかし、いくつかの注意事項があります。

最後のもの

関連情報