この質問にはすでに回答があります :bashに入力されるスクリプトに引数を渡す方法
(2つの回答)
9か月前に終了しました。
Linux
(2つの回答)
9か月前に終了しました。
パラメータを使用してbashスクリプトを実行する方法:
./foo.sh a b c
圧縮されている場合(例:xz
を使用) 。
xzcat foo.sh | bash <<how_to_supply_here_parameters?>>
特定のユースケース:
非常に大きなrmlint.sh
を作成しました ファイルを作成して圧縮して保存します:
time rmlint -o sh:stdout -c sh:hardlink|tee >( xz > rmlint.sh.xz )
したがって、私は通常実行します
./rmlint.sh -d -x -p
ただし、ファイルが大きすぎて圧縮解除できません。したがって、私はそれをbashにパイプすることによって同じことをしたいと思います:
xzcat rmlint.sh.xz | bash ...
承認された回答:
-s
を使用する必要があります オプションと--
渡したい引数を区切るには:
echo 'echo "[email protected]"' | sh -s 3 4 5
echo 'printf "{%s}" "$0"; printf " {%s}" "[email protected]"; echo' |
sh -s -- -d -x -p --foo=bar
{sh} {-d} {-x} {-p} {--foo=bar}
これは、bash
だけでなく、すべてのPOSIXシェルで機能するはずです。 。 susv4から:
-s
標準入力からコマンドを読み取ります。オペランドがなく、
-c
がある場合 オプションが指定されていない場合、-s
オプションが想定されます。