我正在尝试将 linux 设备的主机名用于字符串,这就是我正在尝试的:
应用程序.sh
flowname="flow_${hostname}.txt"
echo "$flowname"
运行脚本会提供以下输出:flow_.txt
知道我在这里缺少什么吗?提前致谢 !
没有名为 的内置变量$hostname。请尝试使用变量$HOST或命令替换 $(hostname)。
flowname="flow_$HOST.txt"
flowname="flow_$(hostname).txt"
该${VARIABLE}语法用于替换给定变量的值。
你想执行hostname命令。通过使用上述变量替换,您尝试输出一个不存在的名为“主机名”的变量。
您必须使用$(COMMAND)语法。这将执行给定的命令并打印其结果。
尝试“uname -n”,“uname”命令会提供有关您主机的有趣信息。
我在 WSL(Linux 的 Windows 子系统)上的 ubuntu 下尝试了你的脚本,发现 John Kugelman 的评论很有用。
为了使脚本在这个环境中运行,我首先打印出可用的系统环境变量。
printenv | less
然后我选择用 ${NAME} 替换 ${hostname}。
您需要填充的变量。使用命令env列出环境变量,
env
所以,只需填充主机名,
hostname=$(uname -n)
echo ${hostname}
flowname="flow_${hostname}.txt"
echo "$flowname"