以下の内容はhttps://m-hiyama.hatenablog.com/entry/20120117/1326774440より取得しました。


bashの $( )

bashでは、定義した変数はコマンドライン上でも二重引用符の文字列内でも展開されます。

$ format='+%Y-%m-%d'; date $format
2012-01-17

$ whom='Hanako'; echo "Hello, $whom"
Hello, Hanako

入れ子もできます。

$ whom='Hanako'; greeting="Hello, $whom"; echo "Today : $greeting"
Today : Hello, Hanako

コマンドの実行結果をコマンドライン上で利用したり変数値にセットするにはバッククォートを使います。

$ echo `date +%Y-%m-%d`
2012-01-17

$ today=`date +%Y-%m-%d`; echo "Today $today: Hello, Hanako"
Today 2012-01-17: Hello, Hanako

変数を経由しなくても、バッククォート構文と文字列を連結して使えます。

$ echo "Today: "`date +%Y-%m-%d`": Hello, Hanako"
Today: 2012-01-17: Hello, Hanako

しかしこれは、みにくいですね。次のように、$( ) を使って書くとスッキリします。

$ echo "Today: $(date +%Y-%m-%d): Hello, Hanako"
Today: 2012-01-17: Hello, Hanako

$( ) の括弧のなかにコマンドラインを書けるのです。外側で定義された変数を括弧内で使うこともできます。

$ format='+%Y-%m-%d'; echo "Today: $(date $format): Hello, Hanako"
Today: 2012-01-17: Hello, Hanako

バッククォートの代替としても使えます。

$ today=$(date +%Y-%m-%d); echo "Today $today: Hello, Hanako"
Today: 2012-01-17: Hello, Hanako

バッククォートよりずっとスマートに思えます*1

*1:でも、習慣から僕はバッククォートを使ってしまって、$()に移行できません(苦笑)。




以上の内容はhttps://m-hiyama.hatenablog.com/entry/20120117/1326774440より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14