Как я присваиваю Вывод команды как Значение переменной?

У меня есть простой сценарий удара как ниже:

#!/bin/bash

hname='hostname'
echo Hello, my server name is $hname

Но вывод не, как я ожидал. Это как указано ниже:

Привет, мое имя сервера является именем хоста

Но мое имя хоста не является 'именем хоста', это - на самом деле 'Пользователь'. Как я должен сделать рассматриваемым как это?

Привет, мое имя сервера является Пользователем

3
задан 17 October 2019 в 23:08

3 ответа

Если Вы хотите получить вывод определенной команды как строка, которая должна быть назначена значением переменной, необходимо использовать замену команды встроенная функциональность:

#!/bin/bash
hname="$(hostname)"
echo "Hello, my server name is $hname"

Также можно использовать старый стиль замены команды, которая поддерживается ударом (и dash/sh) и является единственной в некоторых других оболочках:

#!/bin/bash
hname=`hostname`
echo "Hello, my server name is $hname"
4
ответ дан 1 December 2019 в 15:48

Вы хотите использовать $HOSTNAME получить переменную. "hostname" будет рассматриваться как константу.

0
ответ дан 1 December 2019 в 15:48

Если Вы хотите переменную hname для содержания имени хоста используйте этот синтаксис:

hname=$(hostname)

0
ответ дан 1 December 2019 в 15:48

Другие вопросы по тегам:

Похожие вопросы: