我有一个简单的 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"
将被视为常量。