命令的输出保存到变量中保留输换行符的问题
发表于 : 2020-07-16 21:01
学习linux shell脚本攻略这本书中,里面有这样一段
假设我们使用子shell或反引用的方法将命令的输出保存到变量中,为了保留输出的空格和换行符(\n),必须使用双引号。
例如:
$ cat text.txt
1
2
3
$ out=$(cat text.txt)
$ echo $out
1 2 3 # 丢失了1、2、3中的\n
$ out="$(cat text.txt)"
$ echo $out
1
2
3
但我测试时发现使用双引号依然丢失换行
$ cat text.txt
1
2
3
$ out="$(cat text.txt)"
$ echo $out
1 2 3
请问这是否是bash版本的区别
bash --version
GNU bash,版本 5.0.3(1)-release (x86_64-pc-linux-gnu)
假设我们使用子shell或反引用的方法将命令的输出保存到变量中,为了保留输出的空格和换行符(\n),必须使用双引号。
例如:
$ cat text.txt
1
2
3
$ out=$(cat text.txt)
$ echo $out
1 2 3 # 丢失了1、2、3中的\n
$ out="$(cat text.txt)"
$ echo $out
1
2
3
但我测试时发现使用双引号依然丢失换行
$ cat text.txt
1
2
3
$ out="$(cat text.txt)"
$ echo $out
1 2 3
请问这是否是bash版本的区别
bash --version
GNU bash,版本 5.0.3(1)-release (x86_64-pc-linux-gnu)