105.1基礎
現在の対話的Bashでllを入力するとls -alFを実行する短縮名を定義する。
適切なコマンドはどれか。
× 不正解
alias NAME='replacement'で単純なコマンド短縮を作る。引数処理や複数手順には関数の方が適する。
詳細解説
誤り
function ll=ls -alFBash関数定義の構文ではない。
誤り。関数はll() { ...; }等の構文で定義し、等号でコマンド文字列を代入しない。
誤り
export ll='ls -alF'変数をexportする構文で、コマンドaliasを作らない。
誤り。子プロセス環境へllという値を渡しても、Bashのコマンド名展開規則には登録されない。
正しい
alias ll='ls -alF'llを指定置換文字列へ展開するaliasを定義する。
正しい。対話的Bashが入力先頭のllをls -alFへ展開するaliasを作る。
誤り
set ll='ls -alF'位置パラメータ操作で、alias定義ではない。
誤り。ll=ls -alFを位置パラメータとして扱い、alias表は変更しない。
実際に確かめる
一時的な検証環境で実行できる例です。
bash --noprofile --norc -ic "alias ll='printf alias-ok'; alias ll" 2>/dev/null期待される結果
alias ll='printf alias-ok'理解のポイント
- alias NAME='...'
- 対話シェルで展開
- 複雑な処理はfunction
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時対話シェル
基礎のおさらい
展開時点
aliasはコマンド読込み時に展開され、非対話シェルではexpand_aliasesが無効なことが多い。
引数処理
任意位置へ引数を差し込む必要がある場合はaliasよりBash関数を使う。
問題IDKP-105-610
確認環境GNU Bash 5.2 / 一時対話シェル
最終技術確認2026-08-13
誤り・権利侵害を報告