-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
これを行うための良い方法はありますか?
ちなみに、私は主に適用される答えに興味がありますが、唯一の適用された/bin/sh
答えにも興味があります/bin/bash
。
ベストアンサー1
POSIX的に:
for arg do
shift
[ "$arg" = "-inf" ] && continue
set -- "$@" "$arg"
done
printf '%s\n' "$@"
上記のコードは、元のAlmquistシェルを除いて、POSIX以前のシェルでも実行されます(読み取り)。アメリカ)。ループをfor
次のように変更します。
for arg
do
...
done
すべてのシェルで動作が保証されます。
別のPOSIX:
for arg do
shift
case $arg in
(-inf) : ;;
(*) set -- "$@" "$arg" ;;
esac
done
この場合、POSIX以前のシェルで機能するには、最初のエントリを削除する(
必要があります。(pattern)