LoginSignup
1
1

More than 5 years have passed since last update.

変数名と値を同時に表示する bash 関数(小ネタ)

Last updated at Posted at 2017-03-16

Bash で、変数名とその中の値を同時に表示する関数(declare -p みたいなの)を書いてみました。

コード

単刀直入に、こんな感じ。

print_var()
{
    [ -n "$1" ] && printf "%7s : %s\n" "$1" ${!1:-(null)}
}

ポイント

  • ${!1} の部分で、第1引数の間接展開(indirect expansion)しています。bash でない場合は $(eval echo '$'$x) とかしないといけないですが、! だけで済む Bash は便利ですね!
  • :-(null) の部分で、間接展開の結果が空だった場合、"(null)" という文字列を代わりに利用しています。

実行してみる

以下のスクリプトを実行してみました。

print_var.sh
#!/bin/bash

print_var()
{
    [ -n "$1" ] && printf "%7s : %s\n" "$1" ${!1:-(null)}
}

print_var

print_var some_var

some_var=4
print_var some_var

結果

$ ./print_var.sh
some_var : (null)
some_var : 4

期待通り、動作しているようです。 :smiley:

1
1
2

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
1
1