我有一个非常简单的脚本,如下所示:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
当我从命令行运行此脚本并将参数传递给它时,我没有得到任何输出。但是,当我运行 $MOREF
变量中包含的命令时,我能够获得输出。
如何获取需要在脚本中运行的命令的结果,将其保存到变量中,然后将该变量输出到屏幕上?
最佳答案
除了反引号`command`
,command substitution可以用 $(command)
或 "$(command)"
来完成,我觉得这样更容易阅读,并且允许嵌套。
OUTPUT=$(ls -1)
echo "${OUTPUT}"
MULTILINE=$(ls \
-1)
echo "${MULTILINE}"
引用 ("
) 对保留多行变量值很重要;它在赋值的右侧是可选的,如 word splitting is not performed ,所以OUTPUT=$(ls -1)
可以正常工作。
关于bash - 如何在 Bash 中将变量设置为命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39148763/