claude-memory/graph/configurations/fish-configfish-sets-shellbinbash-intentionally-for-tool-com-fba35b.md

29 lines
1.1 KiB
Markdown

---
id: fba35b41-aced-4f74-ae01-dfa062df0764
type: configuration
title: "Fish config.fish sets SHELL=/bin/bash intentionally for tool compatibility"
tags: [fish, bash, workstation, shell, dotfiles, configuration]
importance: 0.6
confidence: 0.8
created: "2026-02-28T04:53:15.735767+00:00"
updated: "2026-02-28T04:53:15.735767+00:00"
---
# Fish config.fish SHELL override
## Configuration
`~/dotfiles/fish/config.fish` contains: `set -x SHELL /bin/bash`
## Rationale
This is intentional. Fish is the interactive shell (set via `chsh` to `/usr/bin/fish`), but `$SHELL` is overridden to bash so scripting tools, agents, and automated processes use bash as expected. Many tools check `$SHELL` to determine which shell to invoke for scripts.
## Environment
- Fish 4.2.0
- Starship prompt
- OS: Nobara Linux (Fedora-based)
- Interactive shell: `/usr/bin/fish`
- Scripting shell: `/bin/bash` (via $SHELL override)
## Key Insight
`$SHELL` = the user's preferred scripting shell (bash), not the running interactive shell (fish). This separation avoids compatibility issues with tools that assume a POSIX shell.