将回显命令的结果保存在Shell脚本中吗?

问题描述 投票:0回答:1

我正在尝试将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#

我在做什么错?

bash shell variables debian echo
1个回答
0
投票

[请您试一下。 HOSTNAME是开箱即用的变量,其中包含服务器的名称,您只需创建一个变量并将其值保存到其中即可,无需在此处使用echo

cat check.sh
#!/bin/bash
host_value="$HOSTNAME"
echo "$host_value"

man bash页开始:

主机名自动设置为当前主机的名称。

© www.soinside.com 2019 - 2024. All rights reserved.