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/39148763/

相关文章:

bash - 如何递归地按类型获取文件数

linux - 为目录中的每个 zip 文件创建一个专用文件夹并提取 zip 文件

java - 从 Java 调用 R 脚本

command-line - 使用批处理文件将目录上的文件夹和子文件夹复制到另一个目录

linux - .bashrc 中的 shopt -s extdebug 在脚本文件中不起作用

bash - bash中的十六进制到二进制转换

shell - 使用 If-Then-Else 将文件拆分为 3 个文件

java - 多个 TestNG 组 : can they be ANDed exclusively from the command line?

bash - 如何修复 EMA 函数在 bash 脚本中不返回预期值的问题?

java - 在 Java 中扩展双引号内的变量