
파일에 일부 구성이 있고 해당 파일 config
을 원합니다 cat
. 그러나 때로는 config
존재하지 않는 경우도 있습니다. 이 경우 명령이 기본값을 출력하도록 하고 싶습니다.
아마도 다음과 같이 작동했을 것입니다.
$ ls
$ cat config || echo 42
42
$ echo 73 > config
$ cat config || echo 42
73
답변1
당신의 구조는 괜찮습니다. 당신은 다음과 같은 일을 할 수도 있습니다
cat config || cat defaultconfig
임의의 명령(예: 주석)을 사용하는 경우 ./get_config_from_web
해당 명령이 합리적인 반환 상태를 제공하는지 확인해야 합니다. 이는 까다로울 수 있습니다. 쉘 스크립트는 실행된 마지막 명령의 결과만 반환하므로 exit
결과로 다른 것을 원하는 경우 이를 수행해야 합니다 .
답변2
다음은 포착되지 않은 오류 조건에 대해 42를 표시합니다.
trap "echo 42" ERR
이를 구성 가능한 변수로 만들 수 있습니다.
trap 'echo "${CONFIG:=42}"' ERR # if $CONFIG is not set, it will be defaulted to 42
답변3
if [ -a config ]; then cat config; else echo ${DEFAULT};fi
DEFAULT 변수가 미리 어떤 것으로 설정되어 있다고 가정합니다.
답변4
if 문에서 종료 코드를 사용할 수 있습니다.
#!/bin/bash
cat config
if [[ "$?" -ne "0" ]]; then
echo "VALUE"
fi
이전 명령이 성공하면 "0" 값으로 종료됩니다. 따라서 다른 종료(실패) 시 "VALUE"에 있는 내용이 무엇이든 출력된다는 의미입니다.