【问题标题】:Linux Bash Script Variable as commandLinux Bash 脚本变量作为命令
【发布时间】:2021-09-23 05:45:23
【问题描述】:

我必须在 RHEL 上创建一个脚本,并且想知道我是否能够将命令的输出保存为变量。例如:

4.2.2 确保配置了日志记录(未评分):= OUTPUT(来自命令sudo cat /etc/rsyslog.conf

这就是我现在所拥有的。

echo " ### 4.2.2 Ensure logging is configured (Not Scored) : ### "
echo " "
echo "Running command: "
echo "#sudo cat /etc/rsyslog.conf"
echo " "

sudo cat /etc/rsyslog.conf

谢谢!

【问题讨论】:

  • @user14135159 :请澄清:您是指命令的标准输出,还是stdout+stderr

标签: linux bash rhel script


【解决方案1】:

这是一个例子:

MESSAGE=$(echo "Hello!")
echo $MESSAGE
Hello!

或旧标准:

MESSAGE=`echo "Hello!"`
echo $MESSAGE
Hello!

在你的情况下:

FILE_CONTENT=$(cat /etc/rsyslog.conf)

注意!!!:不要使用接近相等的空格!

这个表格不正确:

MESSAGE = `echo "Hello!"`
MESSAGE: command not found

【讨论】:

  • 很高兴解释一下您正在做的事情(以及 OP 正在寻找的内容)称为 Command Substitution。其中命令的输出被替换为分配给变量的命令。 (我知道你知道,但 OP 可能不会——如果他们想进一步搜索,总是会有所帮助)。请注意,$(...) 比旧的 `...` 更受欢迎。
  • 感谢您的解释!真的很感激:)
【解决方案2】:
variable=$(command)
variable=$(command [option…] argument1 arguments2 …)
variable=$(/path/to/command)

取自https://linuxhint.com/bash_command_output_variable/

【讨论】:

    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 2021-01-28
    • 2011-10-16
    • 2016-06-01
    • 1970-01-01
    • 2015-04-24
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多