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
但有一些注意事项