Bashで変数値の代わりに変数名をエコーする方法は? [閉鎖]

Bashで変数値の代わりに変数名をエコーする方法は? [閉鎖]

varBashに変数があるとしましょう。私はそれに価値を与えることができる。たとえば、文字列で作成します。

var="Test"

私が望むのはecho名前varであり、それが含まれている価値ではありませんvar。 (後者を実行するために使用できますが、echo $var実際には前者を実行したいと思います。)

この質問に対するSOの回答を使用すると言いますが、echo ${!var}これによりエコーは空行のみを返します。たとえば、このbashスクリプトは

#!/bin/bash

echo "Hi"
var="Test"
echo ${!var}
echo "Bye"

次の出力を返します。

Hi

Bye

間に空白行が1つしかありません。こんにちはそしてさようなら、変える変わりやすい。私は何が間違っていましたか?

私は走っているバッシュ 4.1.5(1)存在するUbuntu 10.04.4

ベストアンサー1

これシェルパラメータ拡張 ${!name@}または${!名前*}これはできます。

$ foo=bar
$ var_name=(${!foo@})
$ echo $var_name" = "$foo
foo = bar

作業中にこれの用途を想像することはできません...

おすすめ記事