環境変数を確認して変数が設定されていない場合は、ログファイルに書き込むシェルスクリプトをどのように作成できますか?
また、env変数が指すファイル名が存在しない場合、どのように生成できますか?
答え1
環境変数は、子プロセスとしてエクスポートされた変数です。
スクリプトはまだお客様のニーズに合わせて調整されていません。役に立つかもしれません。結果を決定するには、${var:?word}
次の構文を使用します。:
#!/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