LoginSignup
16
17

More than 5 years have passed since last update.

bashで文字列を変数名に展開する方法

Last updated at Posted at 2016-08-20

文字列を変数名として利用したいことがある。
evalを利用すれば簡単に実現できた。

以下のサンプルでは、var_nameという文字列をそのまま変数名に利用する。

eval_sample1.sh
#!/bin/bash -ue

# 変数strにvar_name文字列を格納
str="var_name"
# evalを利用してvar_nameに"value"
eval $str="value"
# var_nameを表示
echo $var_name

また、変数に利用したい変数名を入れるようなスクリプトを作りたいことも多々ある。
この場合もevalを利用して一度文字列を展開すれば実行できる。
以下のサンプルではecho実行時に文字列を変数に展開した。

eval_sample2.sh
#!/bin/bash -ue

# 変数var_nameを定義
var_name="value"
# 変数strにvar_name文字列を格納
str="var_name"
# var_nameを表示
eval echo '$'$str
16
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17