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

这是一个变量赋值。在本例中a是您的变量,您将其设置为空值;''将评估为空。

正如伊尔卡丘指出的:

使用a=''实际上与使用a=""或没有什么不同a=

正如 cas 指出的:

将变量设置为空值(或任何初始/默认值)还可以确保您不会使用它可能具有的任何值,如果它恰好是环境变量(例如在父 shell 中导出)。例如,如果您的脚本假设变量为空/未定义,除非脚本本身定义了它,并据此采取不同的操作,这可能会出现问题。

脚本文件

#!/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

在许多情况下,将变量设置为空值与取消设置变量相同:unset a

但有一些注意事项

最后一个

相关内容