【发布时间】:2020-02-13 01:43:18
【问题描述】:
我正在尝试将 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"
# also, in case a problem with reserved names:
test=$HOSTNAME
test="$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#
我做错了什么?
【问题讨论】:
-
能否告诉我们
echo $HOSTNAME是否在您的脚本中工作?无需将其分配给变量。
标签: bash shell variables debian echo