如何编写用于检查环境变量的shell脚本,如果未设置该变量,则写入日志文件?
答案 0 :(得分:4)
如果您只想要取消设置的消息,那么:
if [ -z "${CHOSEN_ENV_VAR}" ]
then echo "CHOSEN_ENV_VAR was not set but should have been" >> log.file
fi
如果您只是希望脚本停止并报告stderr,那么:
: ${CHOSEN_ENV_VAR:?'was not set but should have been'}
(您可以在交互式shell中测试它,但交互式shell不会退出。将它放在脚本中并退出脚本。)
答案 1 :(得分:3)
写入日志的命令是logger
。
并且您测试变量是否设置为test -v
,因此在您的脚本中您必须有以下行:
if test ! -v VARNAME; then logger Variable VARNAME is unset; fi
编辑:如果您的日志只是一个任意日志文件而不是系统日志,您当然可以用echo bla bla>替换记录器。 log.file。
答案 2 :(得分:1)
[ -z "$name" ]
检查name
是否为空。要测试是否未设置,请使用[ -z "${name+isset}" ]
。
check() {
if [ -z "${name+isset}" ]; then
echo "name is unset"
elif [ -z "$name" ]; then
echo "name is empty"
else
echo "name is non-empty"
fi
}
name=me; check name
name=; check name
unset name; check name