我有一个非常简单的脚本,如下所示:
#!/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/60234880/