파일에 일부 구성이 있고 해당 파일을 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"에 있는 내용이 무엇이든 출력된다고 알립니다.