私は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 world
をtext
という名前の変数に格納する方法を教えてください。
注:スクリプトにパラメーターを渡すオプションがあることはわかっていますが、スクリプトを実行するユーザーにとってはこれがより直感的であるため、この方法で実行する方法を知りたいと思いました。
これは indirection と呼ばれ、構文は${!reference}
は、名前がreference
変数にある変数の値を置き換えます。例えば:
name='Jane Doe'
reference='name'
$ echo "${!reference}"
Jane Doe