일부 코드를 조정했으며 가능한 옵션을 처리해야 합니다. 함수를 실행하거나 도움말 옵션을 사용하여 간단한 설명을 제공하세요.
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
하이픈 때문에일부 쉘과 호환되지 않을 수 있음:
결론적으로
- 하이픈은 비표준입니다. 쉘 간 호환성을 원한다면 멀리하십시오.
- 하이픈 대신 밑줄을 사용하세요. 밑줄은 어디에서나 허용됩니다.