我可以同时投入变量和回声吗?

时间:2014-11-04 07:55:02

标签: linux bash variables ubuntu echo

我有一个这样的脚本:

str=$(echo $'Hello World\n===========\n')
echo "$str"

它有效!

我可以拥有这样的东西吗?

echo str=$(echo $'Hello World\n===========\n')

3 个答案:

答案 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"