У меня есть простой сценарий удара как ниже:
#!/bin/bash
hname='hostname'
echo Hello, my server name is $hname
Но вывод не, как я ожидал. Это как указано ниже:
Привет, мое имя сервера является именем хоста
Но мое имя хоста не является 'именем хоста', это - на самом деле 'Пользователь'. Как я должен сделать рассматриваемым как это?
Привет, мое имя сервера является Пользователем
Если Вы хотите получить вывод определенной команды как строка, которая должна быть назначена значением переменной, необходимо использовать замену команды встроенная функциональность:
#!/bin/bash
hname="$(hostname)"
echo "Hello, my server name is $hname"
Также можно использовать старый стиль замены команды, которая поддерживается ударом (и dash/sh) и является единственной в некоторых других оболочках:
#!/bin/bash
hname=`hostname`
echo "Hello, my server name is $hname"
Вы хотите использовать $HOSTNAME
получить переменную. "hostname"
будет рассматриваться как константу.
Если Вы хотите переменную hname
для содержания имени хоста используйте этот синтаксис:
hname=$(hostname)