如果环境变量未设置,如何记录?

如果环境变量未设置,如何记录?

如何编写一个 shell 脚本来检查环境变量并在该变量未设置时写入日志文件?

另外,如果env变量指向的文件名不存在,如何创建它?

答案1

环境变量是导出到子流程的变量。
该脚本尚未适应您的需求,可能会有所帮助。它使用${var:?word}语法 with 和 without:来确定结果:

#!/bin/sh

unset=0
null=0

if ! sh -c 'echo ${var?}' >/dev/null 2>/dev/null; then
   unset=1
elif ! sh -c 'echo ${var:?}' >/dev/null 2>/dev/null; then
   null=1
fi

echo "unset = $unset"
echo "null  = $null"

答案2

如果我没理解错的话

env | grep -q ^$VAR && logger -t varlogger "var is unset"

test -f $VAR || touch $VAR

相关内容