有人能告诉我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
Run Code Online (Sandbox Code Playgroud)
谢谢
这是一个变量赋值。在这种情况下a
是您的变量,您将其设置为空值;''
将评估为无。
正如 ilkkachu 指出的那样:
使用a=''
实际上与使用a=""
或a=
正如 cas 指出的那样:
将变量设置为空值(或任何初始/默认值)还可以确保您不会使用它可能具有的任何值,如果它恰好是一个环境变量(例如在父 shell 中导出)。例如,如果您的脚本假定变量为空/未定义,除非脚本本身定义它,并基于此采取不同的操作,则这可能是问题。
脚本文件
#!/bin/bash
if [[ $1 == null ]]; then
a=
elif [[ $1 == unset ]]; then
unset a
fi
echo "${a:-test}"
Run Code Online (Sandbox Code Playgroud)
在行动:
$ export a=value
$ ./script.sh null
test
$ ./script.sh unset
test
$ ./script.sh
value
$ echo $a
value
Run Code Online (Sandbox Code Playgroud)
在许多情况下,将变量设置为空值与取消设置变量相同: unset a
但是有一些注意事项