더 쉬운 버전 관리를 위해 각 Bash 함수를 별도의 파일에 작성하고 모든 것을 내 .bashrc
.
예를 들어보다 더 강력한 방법이 있습니까?
. ~/.bash_functions/*.sh
답변1
적절한 오류 검사로 둘러싸십시오.
fn_dir=~/.bash_functions
if [ -d "$fn_dir" ]; then
for file in "$fn_dir"/*; do
[ -r "$file" ] && . "$file"
done
fi
답변2
한 번에 여러 파일을 소싱하는 경우 연결된 출력의 리디렉션을 생성하여 수행할 수 있습니다. 예를 들면 다음과 같습니다.
source <(cat ~/.bash_functions/*.sh)
강력한 부분에 관해서는 소스에 관계없이 오류 검사를 적절하게 설정해야 할 것입니다. 예를 들면 다음과 같습니다.
source <(cat ~/.bash_functions/*.sh)||echo "ERROR: failed while sourcing $?";exit 1
다음은 소스 파일 자체를 확인할 수도 있는 또 다른 코드 조각입니다.
sourced_files=$(source <(cat ~/.bash_functions/*.sh) 2>&1 > /dev/null)
if [ -n "$sourced_files" ]; then
echo "ERROR: nonzero returned"
fi
가능한 경우 소스에 오류 유효성 검사를 추가하고 사용자 정의 오류 코드를 사용하면 오류가 발생한 위치를 더 잘 추적할 수 있다면 더 좋을 것입니다. 예를 들면 다음과 같습니다.
err=0
...
...
# your shell script
...
some-command-i-wanna-check
if [ "$?" -ne 0 ];then
echo "ERROR: my failed description"
err=101
exit $err
fi