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

相关文章:

Windows 批处理文件 && 运算符

bash - 使用 ./script.sh 和 . ./脚本.sh

c# - 从 ASP.NET Core 3 应用程序执行 Linux Shell 命令

c++ - 数组索引到矩阵索引

windows - 如何使用常规 Windows 命令行递增文本文件中的值?

bash - 从 shell 脚本的行数中提取公共(public)部分文本

linux - Bash 程序在 if 语句后挂起

c# - Windows 7 动画鼠标拖动事件

linux - 确定shell程序中的相对路径还是绝对路径

linux - Linux 文件系统、命令行和结构的学习资源