LPIC-1 / シェルとスクリプト ・ コマンド問題
$
- now=$(date)✓ 正解
- now=$date
- now=(date)
- now="date"
💡 $(...) はコマンド置換で、コマンドの標準出力を値として展開します。等価な旧表記はバッククォート `date` です。now="date" は文字列 date が入るだけです。
○ now=$(date):$(date)はコマンド置換でdateの実行結果を変数に代入できるため正しい。
✕ now=$date:$dateはdateという変数の値を参照するもので、未定義なら空になる。
✕ now=(date):now=(date)は配列代入の構文で、要素が文字列dateになりコマンドは実行されない。
✕ now="date":now="date"は文字列dateを代入するだけで、コマンドは実行されない。