ツール
Bash
Linux・macOS で標準的に使われるシェル。コマンド実行とシェルスクリプトの基盤。
問題一覧(5)
Bash で「/bin/bash^M: bad interpreter」が解決できない
エラー文末尾の ^M は改行コードが CRLF になっている印である。#! 行の末尾に付いた \r までインタプリタ名の一部として扱われ、そんなパスは存在しないので落ちる。改行を LF に直せば解消する。
更新: 2026-09-21、実行例あり、タグ: crlf、shebang、line-ending
Bash で PATH に追加したのに command not found が消えない
.bashrc に export PATH=... を書いても効かないのは、そのシェルがどの起動ファイルを読むかが起動の種類で違うためである。対話ログインシェルは .bash_profile 系を読み、対話非ログインシェルは .bashrc を読む。
更新: 2026-08-11、タグ: path、bashrc、bash-profile
Bash で「Permission denied」が出てシェルスクリプトを実行できない
./script.sh が Permission denied になるのは、ファイルに実行ビットが立っていないか、置き場所が noexec でマウントされているかのどちらかである。chmod +x で実行ビットを付けるか、bash script.sh とインタプリタを明示して回避する。
更新: 2026-09-12、実行例あり、タグ: permission、chmod、shell-script
bash で set -e を書いてもエラーでスクリプトが止まらない
set -e には仕様上の適用外がある。条件文脈で実行されたコマンド、パイプラインの途中、local や export と同時に書いた代入では終了ステータスが無視される。止めたい箇所を明示的に判定する。
更新: 2026-08-25、タグ: set-e、errexit、pipefail
bash の if で「unary operator expected」「too many arguments」になる
[ ] の中の変数を引用符で囲んでいないと、空文字や空白を含む値が単語分割で消えたり増えたりして構文が壊れる。変数を "$var" で囲むか、bash なら [[ ]] を使えば解消する。
更新: 2026-09-12、実行例あり、タグ: shell、test、quoting