一尘不染

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

javascript

我有一个非常简单的脚本,类似于以下内容:

#!/bin/bash

VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'

echo $MOREF

当我从命令行运行这个脚本并将参数传递给它时,我没有得到任何输出。但是,当我运行$MOREF变量中包含的命令时,我可以获得输出。

如何获取需要在脚本中运行的命令的结果,将其保存到变量中,然后将该变量输出到屏幕上?


阅读 180

收藏
2022-02-11

共1个答案

一尘不染

除了反引号之外command,还可以使用or来完成命令替换,我发现它更易于阅读,并且允许嵌套。$(command)``"$(command)"

OUTPUT=$(ls -1)
echo "${OUTPUT}"

MULTILINE=$(ls \
   -1)
echo "${MULTILINE}"

引用 ( ") 对保留多行变量值很重要;它在作业的右侧是可选的,因为不执行分词,所以OUTPUT=$(ls -1)可以正常工作。

2022-02-11