このコマンドを実行すると
user@ubuntu:~$ ./2input1output Jojo Ar Dublin
それは私に次のような結果を与えます
Your First Name: Jojo
Your Last Name : Ar
Your Hometown : Dublin
Thank you, Jojo Ar From Dublin,
Welcome to Stackoverflow
これで、この出力の4行目と5行目を表示してから変数に保存する必要があります。頑張りました
user@ubuntu:~$ (sed -n 4,5p ./2input1output)
しかし、それは私に次のような結果を与えます
echo"Thank you, $1 $2 From $3,
Welcome to stackoverflow"
ベストアンサー1
あなたのコマンドは実際に期待どおりに機能します。 sedに、「2input1output」ファイルから4行と5行を返すように依頼しています。ご覧のとおり、位置パラメータ(つまり$ 1、$ 2、$ 3)はスクリプトに含まれているため返されます。
実際にやるべきことは、まずスクリプトを実行して目的の出力(STDOUT)を取得し、それをストリームエディタ(sed)にパイプすることです。したがって、必要なものをクリックして変数に保存します。
$ MESSAGE=$(./2input1output Jojo Ar Dublin | sed -n 4,5p)
変数にアクセスするときに改行を維持する必要がある場合は、まず二重引用符で囲む必要があることに注意してください。