기본적으로 -inf
매개 변수 목록에서의 첫 번째 항목을 "뽑아 내고"싶습니다 . (나머지 매개 변수는 다른 명령으로 전달됩니다.)
내가 가지고있는 스크립트의 구조는 다음과 같습니다.
#!/bin/sh
<CODE>
for POSITIONAL_PARAM in "$@"
do
<CODE>
if [ "$POSITIONAL_PARAM" = '-inf' ]
then
<PLUCK $POSITIONAL_PARAM FROM $@>
break
fi
<CODE>
done
<CODE>
some-other-command "$@"
# end of script
이 작업을 수행하는 좋은 방법이 있습니까?
BTW, 나는 주로에 해당하는 답변에 관심이 있지만 /bin/sh
에만 해당되는 답변에도 관심이 /bin/bash
있습니다.
POSIXly :
for arg do
shift
[ "$arg" = "-inf" ] && continue
set -- "$@" "$arg"
done
printf '%s\n' "$@"
위의 코드는 원래 Almquist 셸 (Read Endnote )을 제외하고 POSIX 이전 셸에서도 작동합니다 . for
루프를 다음으로 변경하십시오 .
for arg
do
...
done
모든 쉘에서 작동하도록 보장합니다.
또 다른 POSIX 하나 :
for arg do
shift
case $arg in
(-inf) : ;;
(*) set -- "$@" "$arg" ;;
esac
done
이것으로 첫 번째 제거 할 필요 (
에서 (pattern)
이 전 POSIX 쉘에서 작동하도록합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다