-2

我正在尝试将 linux 设备的主机名用于字符串,这就是我正在尝试的:

应用程序.sh

flowname="flow_${hostname}.txt"
echo "$flowname"

运行脚本会提供以下输出:flow_.txt 知道我在这里缺少什么吗?提前致谢 !

4

5 回答 5

1

没有名为 的内置变量$hostname。请尝试使用变量$HOST命令替换 $(hostname)

flowname="flow_$HOST.txt"
flowname="flow_$(hostname).txt"
于 2019-11-20T09:31:24.813 回答
1

${VARIABLE}语法用于替换给定变量的值。

你想执行hostname命令。通过使用上述变量替换,您尝试输出一个不存在的名为“主机名”的变量。

您必须使用$(COMMAND)语法。这将执行给定的命令并打印其结果。

于 2019-11-20T09:34:38.413 回答
0

尝试“uname -n”,“uname”命令会提供有关您主机的有趣信息。

于 2019-11-20T09:30:41.150 回答
0

我在 WSL(Linux 的 Windows 子系统)上的 ubuntu 下尝试了你的脚本,发现 John Kugelman 的评论很有用。

为了使脚本在这个环境中运行,我首先打印出可用的系统环境变量。

printenv | less 

然后我选择用 ${NAME} 替换 ${hostname}。

于 2019-11-20T09:43:08.663 回答
-1

您需要填充的变量。使用命令env列出环境变量,

env

所以,只需填充主机名,

hostname=$(uname -n)
echo ${hostname}
flowname="flow_${hostname}.txt"
echo "$flowname"
于 2019-11-20T09:35:16.137 回答