bash - 如何在 Bash 中将变量设置为命令的输出?

标签 bash shell command-line

我有一个非常简单的脚本,如下所示:

#!/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/46782894/

相关文章:

unix - sed -i 选项有什么作用?

bash - 在 Bash 中获取配置文件的最佳实践

bash tee 去除颜色

python - 我安装了一个 Python 程序,但找不到它的所有源代码

Linux 复制目录但名称不同?

arrays - 在shell脚本中排序

linux - bash陷阱和过程替换

perl - 如何使用GetOpt传递文件

command-line - Vagrant 提供实时输出

linux - 在bash中递归扫描目录