Вы используете bash
в качестве терминала. В Bash установлена переменная $HOSTNAME
. Вы запускаете свой скрипт с sh
. sh
не имеет $HOSTNAME
.
Параметры:
bash test.sh
Или запустить его как программу:
chmod +x test.sh
./test.sh
Но я думаю, что вам нужноизмените вашу первую строку на:
#!/bin/bash
Поскольку я не думаю, что bash устанавливается в /usr/bin
в большинстве случаев. Но вам нужно попробовать. Чтобы выяснить, где установлен bash, используйте which bash
Другой вариант - использовать hostname
бинарный файл:
CURRENT_HOSTNAME=$(hostname)
echo $CURRENT_HOSTNAME
, который работает как в bash, так и в sh.
Вы можете запустить sh
, просто запустив sh
. Вы увидите, что он имеет терминал, похожий на bash. Вы можете попробовать сделать echo $HOSTNAME
. Это не покажет, потому что это не там. Вы можете использовать set
, чтобы увидеть все переменные, которые там есть (так как sh
не имеет табуляции, его сложнее понять).