我有一个这样的脚本:
str=$(echo $'Hello World\n===========\n')
echo "$str"
它有效!
我可以拥有这样的东西吗?
echo str=$(echo $'Hello World\n===========\n')
答案 0 :(得分:3)
在bash中有一个可变扩展,可能对你很方便:
${newvar=value}
试试这个:
$ unset str
$ echo "${str=Hello world}"
Hello world
$ echo "$str"
Hello world
现在用双线示例:
$ unset str
$ echo "${str=$'Hello World\n===========\n'}"
Hello World
===========
$ echo "$str"
Hello World
===========
$
答案 1 :(得分:2)
如果我能猜出你想要什么,那么在流程替换中如何做tee
呢?
str=$(echo $'Hello world!\n====\n' | tee -a /dev/stderr)
这有一个明显的缺点,即输出被重定向到标准错误。
earlier version of this answer批评的代码随后从问题中删除。如果您好奇,请参阅编辑历史记录。
答案 2 :(得分:0)
我认为使用两条指令更好,因为人们可以理解它:
str=$(echo $'Hello World\n===========\n'); echo "$str"