해야 할 일을 수행하는 코드 조각이 있습니다.
first_arg="$1";
if [ "$first_arg" != "patch" -a "$first_arg" != "major" -a "$first_arg" != "minor" -a "$first_arg" != "prerelease" ]; then
echo "First argument needs to match a valid npm version argument (patch, minor, major, etc).";
exit 1;
fi
첫 번째 매개변수가 (패치, 메이저, 마이너, 프리릴리즈) 중 하나인지 확인합니다.
그러나 이 작업을 수행하는 더 짧고 간결한 방법이 있습니까?
답변1
을 사용할 수 있으며 case
모든 표준 쉘에서 작동합니다.
case "$1" in
patch|major|minor|prerelease) ;;
*) echo "First argument needs to match a valid npm version argument (patch, minor, major, etc)." >&2; exit 1;;
esac
Bash/ksh/zsh의 대안은 정규식 일치를 사용하는 것입니다.
if ! [[ $1 =~ ^(patch|major|minor|prerelease)$ ]]; then
echo "First argument needs to match a valid npm version argument (patch, minor, major, etc)." >&2;
exit 1;
fi