2
$ cat temp.txt
hello, world!





$ cat temp.txt | sed -n '1,4p'
hello, world!



$ ret=$(cat temp.txt | sed -n '1,4p')
$ echo "$ret"
hello, world!
$

$ret 変数に空の行がないのはなぜだろうと思っています。

助けてくれてありがとう。

4

2 に答える 2

4

bashのmanページから(強調鉱山):

Bash は、コマンドを実行し、コマンド置換を > コマンドの標準出力に置き換え、末尾の改行を削除することで展開を実行します。埋め込まれた改行は削除されませんが、単語分割中に削除される場合があります。コマンド置換 $(cat file) は、同等で高速な $(< file) に置き換えることができます。

于 2012-08-28T19:33:34.017 に答える
-1

echo "$ret"実際の引数がどうなるかを決定する際のスキップ空白の解析echo。よりよく理解するために、次のようなことを試してみてください。

x=$(echo '   foo    ')
echo "x${x}x"
echo ${x}
echo "${x}"
于 2012-08-28T19:35:59.873 に答える