コマンド置換、変数展開、算術式展開のメモ
シェルスクリプトを学習していて、${}、$(())、$() がよく分からなかったので、最低限の簡単な内容をメモ。
$() コマンド置換
コマンドの出力結果を文字列として埋め込む。
主に変数に代入する時に使用ことが多いが、ダブルクォートの中でも有効なので、直接の使用も可能。
today=$(date +%Y-%m-%d)
echo "今日は $today です"
# → 今日は 2026-03-31 です
# 直接使用
echo "ファイル数: $(ls | wc -l)"${} 変数展開
変数の値を展開する。$var より ${var} の方が応用が効く。
${} 内でパラメータ展開の記法を設定して、値の加工ができる。
name="Takeshi"
echo "${name}"
# 文字の加工
echo "${name,,}" # → takeshi (小文字化)
echo "${name^^}" # → TAKESHI (大文字化)
echo "${#name}" # → 5(文字数)
# デフォルト値(未定義なら代替値を使う)
echo "${user:-guest}" # → 変数 user が未定義なら "guest"
# 文字列の置換
path="/usr/local/bin"
echo "${path/local/opt} # → /usr/opt/bin$(()) 算術式展開
整数の計算結果を展開する。
a=10
b=3
echo $((a+b)) # → 13
# 変数への代入
count=0
((count++))
echo $count # → 1