![환경 변수가 설정되지 않은 경우 어떻게 기록할 수 있나요? [폐쇄]](https://linux55.com/image/18373/%ED%99%98%EA%B2%BD%20%EB%B3%80%EC%88%98%EA%B0%80%20%EC%84%A4%EC%A0%95%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B2%BD%EC%9A%B0%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EA%B8%B0%EB%A1%9D%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
환경 변수를 확인하고 변수가 설정되지 않은 경우 로그 파일에 기록하는 쉘 스크립트를 어떻게 작성할 수 있습니까?
또한, 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