외부 매개변수 값을 제공하는 경우 해당 값 앞과 뒤에 하이픈이 와야 합니다. 하이픈이 없으면 텍스트 앞뒤에 하이픈이 필요하다는 오류가 반영되어야 합니다.
예를 들어, 외부 매개변수는 다음과 같아야 합니다.
-report-country-sales-price-
답변1
예를 들어 POSIX와 유사한 셸에서는 bash
다음을 수행할 수 있습니다.
case $1 in
(-*-) ;; # OK
(*) echo >&2 "The first parameter must start and end with a -"; exit 1
esac
보다 구체적인 일치를 위해서는 구체적으로 다음을 수행하십시오 bash
.
regex='^-([[:alpha:]]+)-([[:alpha:]]+)-([[:alpha:]]+)-([[:alpha:]]+)-$'
if [[ $1 =~ $regex ]]; then
A=${BASH_REMATCH[1]}
B=${BASH_REMATCH[2]}
C=${BASH_REMATCH[3]}
D=${BASH_REMATCH[4]}
else
echo >&2 "First parameter must be -letters-letters-letters-letters-"
exit 1
fi
또는 다양한 수의 -
구분된 단어를 허용합니다.
regex='^(-[[:alpha:]]+){2,6}-$'
if [[ $1 =~ $regex ]]; then
IFS=- read -ra words <<< "$1" # OK here as $1 is guaranteed not to
# contain newline characters at this
# point.
A=${words[1]}
B=${words[2]}
C=${words[3]-not-supplied}
D=${words[4]-not-supplied}
E=${words[5]-not-supplied}
F=${words[6]-not-supplied}
else
echo >&2 "First parameter must be list of 2 to 6 - separated words"
exit 1
fi