以下のような単純なbashスクリプトがあります:
#!/bin/bash
hname='hostname'
echo Hello, my server name is $hname
しかし、出力は私が期待したものではありません。それは以下の通りです:
こんにちは、私のサーバー名はホスト名です
しかし、私のホスト名は「ホスト名」ではなく、実際には「ユーザー」です。それをどのように見せるのですか?
こんにちは、私のサーバー名はユーザーです
変数の値として割り当てる必要がある文字列として特定のコマンドの出力を取得する場合は、 コマンド置換 組み込み機能を使用する必要があります。
#!/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"
変数を取得するには、$HOSTNAME
を使用します。 "hostname"
は定数として扱われます。
変数hname
にホスト名を含めるには、次の構文を使用します。
hname=$(hostname)