GNU/Linux >> Linux の 問題 >  >> Linux

BashスクリプトをBashにパイプするときにパラメータを設定する方法は?

この質問にはすでに回答があります :bashに入力されるスクリプトに引数を渡す方法

(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 オプションが想定されます。


Linux
  1. Bashでは、いつエイリアスを作成し、いつスクリプトを作成し、いつ関数を作成するのですか?

  2. Bashスクリプトで文字列を分割する方法

  3. VimでBashスクリプトを強調表示するには?

  1. パラメータをBashスクリプトに渡す方法は?

  2. Python スクリプトで、PYTHONPATH を設定するにはどうすればよいですか?

  3. bash スクリプトを実行するには?

  1. Bashスクリプトをデバッグする方法は?

  2. Monoで*.exeを実行するようにBashを設定する方法は?

  3. エラーが発生したときに Bash で行番号を見つけるにはどうすればよいですか?