如何将命令的输出指定为变量的值?

如何将命令的输出指定为变量的值?

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

#!/bin/bash

hname='hostname'
echo Hello, my server name is $hname

但输出并不像我预期的那样。如下所示:

你好,我的服务器名称是 hostname

但是我的主机名不是“hostname”,实际上是“User”。我该如何让它看起来像这样?

你好,我的服务器名称是用户

答案1

如果要将某个命令的输出作为字符串获取,并将其赋给变量的值,则需要使用命令替换内置功能:

#!/bin/bash
hname="$(hostname)"
echo "Hello, my server name is $hname"

您还可以使用 bash(和 dash/sh)支持的旧式命令替换,它是其他一些 shell 中唯一的命令替换:

#!/bin/bash
hname=`hostname`
echo "Hello, my server name is $hname"

答案2

如果您希望变量hname包含您的主机名,请使用以下语法:

hname=$(hostname)

答案3

您想要用来$HOSTNAME获取的变量。"hostname"将被视为常量。

相关内容