パラメータを使用して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 ...
ベストアンサー1
-s
オプションを使用して--
渡すパラメータを区別する必要があります。
echo 'echo "$@"' | sh -s 3 4 5
echo 'printf "{%s}" "$0"; printf " {%s}" "$@"; echo' |
sh -s -- -d -x -p --foo=bar
{sh} {-d} {-x} {-p} {--foo=bar}
bash
これは.fromだけでなく、すべてのPOSIXシェルでも機能します。スースウイルス4:
-s
標準入力からコマンドを読みます。オペランドがなく、
-c
オプションが指定されていない場合は、-s
このオプションを想定する必要があります。