Windows環境での.bashrcファイル存在時のコマンド実行問題修正
原文(日本語に翻訳)
.bashrcファイルを持つWindowsユーザーがbashコマンドを実行できなかった問題(リグレッション)を修正しました。
原文(英語)
Fixed a regression where Windows users with a .bashrc file could not run bash commands
概要
以前のバージョンで導入されたリグレッションにより、Windowsユーザーがホームディレクトリに .bashrc ファイルを持っている場合、Claude Code でbashコマンドが実行できなくなっていた問題が修正されました。この問題は、Bash初期化処理の変更が原因でした。
基本的な使い方
修正後の正常動作
bash
# Windows環境(WSL、Git Bash、Cygwinなど)
# ホームディレクトリに .bashrc が存在
C:\Users\username\.bashrc
# Claude Code セッション
claude
# bashコマンドを実行
> "ls -la を実行して"
> "git status を確認して"
# 以前の問題:
# - エラー: "Failed to initialize bash"
# - または: bashコマンドがハング
# 修正後:
# - 正常に .bashrc が読み込まれる
# - bashコマンドが期待通りに実行される実践例
WSL(Windows Subsystem for Linux)での使用
bash
# WSL Ubuntu環境
# ~/.bashrc に環境設定
# .bashrc の内容例:
export PATH="$HOME/.local/bin:$PATH"
export NODE_ENV=development
alias ll='ls -alF'
# Claude Code を起動
claude
> "npm install を実行して"
# 以前: .bashrc が原因でbashコマンド失敗
# 現在: .bashrc が正しく読み込まれ、PATHやaliasが有効Git Bash での使用
bash
# Git Bash(Git for Windows付属)
# C:\Users\username\.bashrc
# .bashrc設定例:
export EDITOR=vim
alias gs='git status'
alias gp='git pull'
# Claude Code セッション
claude
> "git status を実行して"
> "プロジェクトの変更をコミットして"
# bash aliasが正常に機能
# git操作がスムーズに実行されるカスタムシェル設定の利用
bash
# Windows + WSL環境
# 開発環境を .bashrc で設定
# .bashrc:
# Node.jsバージョン管理
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# Python仮想環境
source ~/venv/bin/activate
# カスタムプロンプト
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# Claude Code でこれらの設定が有効
claude
> "node --version を確認して"
> "python でスクリプトを実行して"
# 以前: 初期化エラーで設定が読み込まれない
# 現在: すべての環境設定が正常に適用されるCygwin環境での使用
bash
# Cygwin環境
# /home/username/.bashrc
# .bashrc:
export CYGWIN=nodosfilewarning
alias cls='clear'
# Claude Code
claude
> "プロジェクトディレクトリに移動して ls を実行"
# Cygwin固有の設定が正しく適用されるエラーが発生していた典型的なシナリオ
bash
# 問題が発生していた設定例
# .bashrc に条件分岐を含む設定
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# または、対話モード判定
if [ "$PS1" ]; then
# プロンプト設定
fi
# 以前のリグレッション:
# - これらの条件分岐でbash初期化が失敗
# - Claude CodeのBashツールが動作不能
# 修正後:
# - 条件分岐を含む複雑な.bashrcでも正常に処理
# - bash初期化が確実に完了注意点
リグレッションとは: 以前のバージョンでは動作していた機能が、新しいバージョンで動かなくなること。このバグは、v2.1.30より前のバージョンで導入されていました。
.bashrc vs .bash_profile:
.bashrc: 非ログインシェル(Claude Codeが使用)で読み込まれる.bash_profile: ログインシェルで読み込まれる- Claude Codeは主に
.bashrcを使用します
Windows環境の種類:
- WSL (Windows Subsystem for Linux): Linuxバイナリをネイティブ実行
- Git Bash: MinGWベースのbashエミュレーション
- Cygwin: POSIX互換レイヤー
- すべての環境でこの修正が適用されます
トラブルシューティング: まだ問題が発生する場合:
bash# .bashrc の構文エラーを確認 bash -c "source ~/.bashrc" # エラー出力をチェック # Claude Code デバッグ claude --verbose > "bash --version を実行して"パフォーマンスへの影響: 複雑な .bashrc(多数のaliasや重い初期化スクリプト)がある場合、bash起動が遅くなる可能性があります。
代替設定ファイル: Claude Code専用の設定が必要な場合:
bash# ~/.claude_bashrc を作成 # Claude Code起動時に読み込まれる(将来の機能として検討中)環境変数の設定: .bashrcで設定した環境変数は、Claude Codeのbashコマンド内で有効です:
bash# .bashrc export MY_API_KEY="secret" # Claude Code内で利用可能 > "echo $MY_API_KEY を実行して"