하나의 라이너 Bash 인수 유효성 검사, 디렉터리 유효성 검사 포함 및 제외
나를 위해 일한 몇 가지 방법이 있습니다. 전역 스크립트 네임 스페이스에서 사용할 수 있습니다 (전역 네임 스페이스에있는 경우 함수 내장 변수를 참조 할 수 없음).
빠르고 더러운 한 라이너
: ${1?' You forgot to supply a directory name'}
산출:
./my_script: line 279: 1: You forgot to supply a directory name
Fancier-기능 이름 및 사용법 제공
${1? ERROR Function: ${FUNCNAME[0]}() Usage: " ${FUNCNAME[0]} directory_name"}
산출:
./my_script: line 288: 1: ERROR Function: deleteFolders() Usage: deleteFolders directory_name
현재 기능을 복잡하게하지 않고 복잡한 유효성 검사 로직 추가
인수를받는 함수 또는 스크립트 내에 다음 줄을 추가합니다.
: ${1?'forgot to supply a directory name'} && validate $1 || die 'Please supply a valid directory'
그런 다음 다음과 같은 작업을 수행하는 유효성 검사 함수를 만들 수 있습니다.
validate() {
#validate input and & return 1 if failed, 0 if succeed
if [[ ! -d "$1" ]]; then
return 1
fi
}
실패시 스크립트를 중단하는 die 함수
die() { echo "$*" 1>&2 ; exit 1; }
추가 인수의 경우 형식을 복제하여 추가 행을 추가하십시오.
: ${1?' You forgot to supply the first argument'}
: ${2?' You forgot to supply the second argument'}