Zenn
🐤

【shell/bash】変数代入で``や$()の使い方を忘れた時に見る

2025/03/31に公開

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

実行結果(例)

20250331

$()でコマンドを囲うパターン

コマンドを囲う場合は${}ではないので、注意

TEST=$(date '+%Y%m%d')  # 今日の日付(YYYYMMDD)
echo $TEST

実行結果(例)

20250331

変数を参照するコマンドの実行結果を代入

2 パターン紹介します

``でコマンドを囲うパターン

囲われた変数は""でさらに囲う

TEST_A=$(date '+%Y%m%d')  # 今日の日付(YYYYMMDD)
TEST_B=`echo "$TEST_A" | awk '{print substr($0, 5)}'`   # 今日の日付から月日を取り出す
echo $TEST_B

実行結果

0331

$()でコマンドを囲うパターン

変数は${}で囲う

TEST_A=$(date '+%Y%m%d')  # 今日の日付(YYYYMMDD)
TEST_B=$(echo ${TEST_A} | awk '{print substr($0, 5)}')  # 今日の日付から月日を取り出す
echo $TEST_B

実行結果

0331

参考文献

https://shellscript.sunone.me/variable.html

Discussion

ログインするとコメントできます