환경 변수를 확인하고 변수가 설정되지 않은 경우 로그 파일에 기록하는 쉘 스크립트를 어떻게 작성할 수 있습니까?
또한, 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