入力ストリームを介して入力を取得するプログラムにコマンドラインでいくつかのパラメーターを与えることを可能にするbashトリックはありますか?このようなもの:
program < 'a=1;b=a*2;'
ただし、<にはファイル入力ストリームが必要です。
入力ストリームを介して入力を取得するプログラムにコマンドラインでいくつかのパラメーターを与えることを可能にするbashトリックはありますか?このようなもの:
program < 'a=1;b=a*2;'
ただし、<にはファイル入力ストリームが必要です。
非常に短いヒアドキュメントの場合は、ヒア文字列もあります。
program <<< "a=1;b=a*2"
おもう
echo 'a=1;b=a*2;' | program
必要なものです。この工程を「パイピング」といいます
補足として、反対のことを行う(つまり、他のプログラムの出力を引数としてパイプする)には、xargs
echo
よく働く。他の答えはヒアドキュメントです[1]
program <<EOF
a=1;b=a*2;
EOF
1行に非常に短いものが1つある場合はechoを使用し、改行が必要なものがある場合はヒアドキュメントを使用します。
shopt -s expand_aliases
alias 'xscript:'='<<:ends'
xscript: bc | anotherprog | yetanotherprog ...
a=1;b=a*2;
:ends
これをハックするのに1年かかりました。プレミアム bash スクリプトです。当然のことながら敬意を払ってください:)
ヒア ドキュメント内で bash 変数と置換を展開できるため、この小さな「ディディ」xscript と呼びます。
alias 'script:'='<<":ends"'
上記のバージョンは置換を展開しません。
xscript: cat
The files in our path are: `ls -A`
:ends
script: cat
The files in our path are: `ls -A`
:ends
私は終わっていません!
source <(xscript: cat
echo \$BASH "hello world, I'mma script genius!"
echo You can thank me now $USER
:ends
)