web-dev-qa-db-ja.com

シェルスクリプトのコマンドを読み取る-変数入力置換

私はLinuxを初めて使用しています。ここで使用されている間違った用語はご容赦ください。

Ubuntu 18.04を使用しています。 readコマンドを使用してシェルスクリプトのテキストを読んでいます。その読み取りコマンドで置き換えたいbashウィンドウに変数があります。私のシェルスクリプトは次のようになります。

echo "Enter Text"
read text
echo "Text is $text"

次に、ターミナルでこのように実行します

user@machine:~$ var="hello world"
user@machine:~$ ./script.sh
Enter text
$var
Text is $var
user@machine:~$ 

出力の行に注意してください-Text is $var ..変数varの値を読み取らせて、hello worldtextという名前の変数に格納する方法を教えてください。

注:スクリプトにパラメーターを渡すオプションがあることはわかっていますが、スクリプトを実行するユーザーにとってはこれがより直感的であるため、この方法で実行する方法を知りたいと思いました。

2
Shishir Gupta

これは indirection と呼ばれ、構文は${!reference}は、名前がreference変数にある変数の値を置き換えます。例えば:

name='Jane Doe'
reference='name'
$ echo "${!reference}"
Jane Doe
1
l0b0