我正在尝试将echo命令的结果存储为要在Shell脚本中使用的变量。 Debian 4.19.0-6-amd64
该命令在终端中起作用:echo $HOSTNAME
返回debian-base
,正确的主机名。
当我尝试在shell脚本中运行它时,例如:
#!/usr/bin/bash
CURRENT_HOSTNAME=`echo $HOSTNAME`
echo $CURRENT_HOSTNAME
我尝试了扩展:
CURRENT_HOSTNAME=$(echo $HOSTNAME)
为了覆盖更多基础,我尝试了类似的操作:
CURRENT_HOSTNAME=$HOSTNAME
#or
CURRENT_HOSTNAME="$HOSTNAME"
在终端上效果很好!输出如下:
root@debian-base:/scripts# echo $HOSTNAME
debian-base
root@debian-base:/scripts# TEST_HOSTNAME=$HOSTNAME
root@debian-base:/scripts# echo $TEST_HOSTNAME
debian-base
root@debian-base:/scripts# TEST_TWO_HOSTNAME=$(echo $HOSTNAME)
root@debian-base:/scripts# echo $TEST_TWO_HOSTNAME
debian-base
一旦我运行脚本(如上):
root@debian-base:/scripts# sh test.sh
root@debian-base:/scripts#
我在做什么错?
[请您试一下。 HOSTNAME
是开箱即用的变量,其中包含服务器的名称,您只需创建一个变量并将其值保存到其中即可,无需在此处使用echo
。
cat check.sh
#!/bin/bash
host_value="$HOSTNAME"
echo "$host_value"
从man bash
页开始:
主机名自动设置为当前主机的名称。