👾
【shell/bash】変数代入で``や$()の使う場面を忘れた時に見る記法まとめ
Linux コマンドの変数代入でよく使われる記法をチートシート風にまとめました。
Linux コマンドはたまに触る程度であり、触る度に「どういった時に``や$()を使えばいいんだっけ?」と忘れがちだった為、個人の備忘録ついでに記事化してみました。
内容は非常にシンプルですが、何かのお役に立てれば嬉しいです。
変数に文字列を代入
TEST=あいうえお
echo $TEST
実行結果
あいうえお
変数に空白を含む文字列を代入
空白もそのまま変数に格納される
TEST=あ い う え お
echo $TEST
実行結果
あ い う え お
変数の値を変数に代入
TEST_A=あいうえお
TEST_B=$TEST_A
echo $TEST_B
実行結果
あいうえお
変数の値と文字列を結合して代入
2 パターン紹介します
変数を${}で囲うパターン
変数を囲っておけば、文字列を""などで囲う必要はなくなる
TEST_A=あいうえお
TEST_B=${TEST_A}かきくけこ
echo $TEST_B
実行結果
あいうえおかきくけこ
文字列を""で囲うパターン
文字列を""で囲っておかないと変数への参照が正しくできない為、注意
TEST_A=あいうえお
TEST_B=$TEST_A"かきくけこ"
echo $TEST_B
実行結果
あいうえおかきくけこ
コマンドの実行結果を代入
2 パターン紹介します
``でコマンドを囲うパターン
TEST=`date '+%Y%m%d'` # 今日の日付(YYYYMMDD)
echo $TEST
実行結果(例)
20230421
$()でコマンドを囲うパターン
コマンドを囲う場合は${}ではないので、注意
TEST=$(date '+%Y%m%d') # 今日の日付(YYYYMMDD)
echo $TEST
実行結果(例)
20230421
変数を参照するコマンドの実行結果を代入
2 パターン紹介します
``でコマンドを囲うパターン
囲われた変数は""でさらに囲う
TEST_A=$(date '+%Y%m%d') # 今日の日付(YYYYMMDD)
TEST_B=`echo "$TEST_A" | awk '{print substr($0, 5)}'` # 今日の日付から月日を取り出す
echo $TEST_B
実行結果
0421
$()でコマンドを囲うパターン
変数は${}で囲う
TEST_A=$(date '+%Y%m%d') # 今日の日付(YYYYMMDD)
TEST_B=$(echo ${TEST_A} | awk '{print substr($0, 5)}') # 今日の日付から月日を取り出す
echo $TEST_B
実行結果
0421
参考文献
Discussion
後で間違いを指摘しますが、せめて動作確認をしてください。
コメントありがとうございます。
確認したところ、少なくとも誤った記法(しかも実行結果と異なる記法)が本記事に含まれていることを確認しました。
誤りにつきましては、動作に問題ないことを確認した上で、修正したものを反映致します。
間違いに気づかれているようなので、修正をみて必要ならコメントします。