1.03.1基礎
mkdir buildが成功した場合だけ、buildディレクトリへ移動する。
mkdirが失敗した場合はcdを実行しない。
適切な1行はどれか。
× 不正解
&&は左のコマンドが終了状態0で成功したときだけ右を実行するため、依存する処理を安全につなげられる。
詳細解説
誤り
mkdir build ; cd buildmkdirが失敗してもcdを実行する。
誤り。mkdirが既存名などで失敗してもcdを試すため、左の成功を前提にする安全条件がない。
正しい
mkdir build && cd buildmkdirの終了状態が0の場合だけcdを実行する。
正しい。&&はmkdirの終了状態が0のときだけcd buildを評価する。
誤り
mkdir build || cd buildmkdirが失敗した場合だけcdを実行する。
誤り。||は失敗時に右を実行するため、作成できなかった場合にcdする逆の条件になる。
誤り
mkdir build | cd buildパイプで接続し、cdを別プロセス側で実行し得るため目的に合わない。
誤り。パイプはmkdirの出力をcdへ渡す構造であり、cdの作業ディレクトリ変更も親シェルへ期待どおり残らない。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); cd "$tmp"; mkdir build && cd build; pwd; cd /; rm -rf "$tmp"期待される結果
末尾が/buildの一時パス理解のポイント
- &&はAND list
- 0は成功
- 右辺は成功時だけ
確認時の注意
- 確認環境: Bash 5.x / 一時ディレクトリ
基礎のおさらい
短絡評価
&&では左が失敗すると、全体が成功になり得ないため右を実行しない。
段階的処理
作成、移動、処理のように前段の成功が必要な操作を&&で安全につなげられる。
問題IDKL-101-431
確認環境Bash 5.x / 一時ディレクトリ
最終技術確認2026-08-13
誤り・権利侵害を報告