web-dev-qa-db-ja.com

コマンドの出力を変数の値として割り当てるにはどうすればよいですか?

以下のような単純なbashスクリプトがあります:

#!/bin/bash

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

しかし、出力は私が期待したものではありません。それは以下の通りです:

こんにちは、私のサーバー名はホスト名です

しかし、私のホスト名は「ホスト名」ではなく、実際には「ユーザー」です。それをどのように見せるのですか?

こんにちは、私のサーバー名はユーザーです

3
berkancetin

変数の値として割り当てる必要がある文字列として特定のコマンドの出力を取得する場合は、 コマンド置換 組み込み機能を使用する必要があります。

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

また、bash(およびdash/sh)によってサポートされ、他のいくつかのシェル内で唯一の、古いスタイルのコマンド置換を使用することもできます。

#!/bin/bash
hname=`hostname`
echo "Hello, my server name is $hname"
4
pa4080

変数を取得するには、$HOSTNAMEを使用します。 "hostname"は定数として扱われます。

0

変数hnameにホスト名を含めるには、次の構文を使用します。

hname=$(hostname)

0
Mox