
가능한 단일 옵션만 처리해야 하는 일부 코드를 조정했습니다. 함수를 실행하거나 도움말 옵션을 사용하여 간단한 설명을 제공하십시오.
activate-jet ()
{
local iarg=0 narg="$#"
while (( narg > 0 )); do
opt="$1" ; iarg=$(( iarg + 1 ))
case $opt in
("-h"|"--help") echo "TODO" ; return ;;
(*) break ;;
esac
done
}
호출 시 사용자의 이상한 동작을 유발하지 않고 가능하다면 더 단순화하고 싶습니다.
답변1
당신이 이렇게 말했으니까 그럴 가능성도 있어요.너만 필요해하나논쟁, 따라서 루핑이나 "대소문자 구분"이 필요하지 않습니다.
$ activate_jet() {
[[ "$#" -gt 1 ]] && echo "Invalid number of arguments" && return
if [[ ! -z "$1" ]]; then
if [[ "$1" = "-h" || "$1" = "--help" ]]; then
echo "TODO" && return
else
echo "Bad argument" && return
fi
fi
echo "jet activated"
}
$ activate_jet foo bar
Invalid number of arguments
$ activate_jet foo
Bad argument
$ activate_jet -h
TODO
$ activate_jet --help
TODO
$ activate_jet
jet activated
이제 밑줄 activate_jet
대신 하이픈을 대체하는 함수의 이름을 변경했습니다.activate-jet
일부 쉘과 호환되지 않을 수 있습니다:
결론
- 하이픈은 비표준입니다. 쉘 간 호환성을 원한다면 멀리하십시오.
- 하이픈 대신 밑줄을 사용하세요. 밑줄은 어디에서나 허용됩니다.