在BASH中,设置为命令的变量是否运行命令并将输出保存为变量?

时间:2016-01-28 02:59:01

标签: bash

原谅我是个菜鸟。基本上我在询问foo=ls时是否会输入" ls"或者如果它将运行ls然后,当被调用时,它将已经运行ls,并且只使用该输出。我假设它是前者,在这种情况下,你怎么能将ls的输出保存为变量?

3 个答案:

答案 0 :(得分:2)

foo=$(ls)

您可以使用$(your command)获取命令的输出。

事实上,您无法使用foo=ls使foo成为ls的别名。您必须撰写alias "foo"="ls"才能将foo用作ls

答案 1 :(得分:0)

var=ls是一个变量,在展开时为ls。因此,在扩展之后,bash将执行命令...如果它是该行中的第一个令牌。以下是两个截然不同的事情。

var=ls
$var #very different from the below
echo $var

答案 2 :(得分:-1)

foo=ls

不运行ls,它只是分配字符串' ls'改变foo。

foo=`ls`

运行ls并将其输出(准确地说是stdout)捕获到变量foo。

相关问题