claude-memory/graph/configurations/fish-configfish-sets-shellbinbash-intentionally-for-tool-com-fba35b.md
2026-03-01 10:44:07 -06:00

50 lines
1.7 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-03-01T16:44:07.115190+00:00"
relations:
- target: acfad6b5-9a2c-4e51-9525-04b4c4112e69
type: RELATED_TO
direction: outgoing
strength: 0.95
edge_id: 9d15e63e-b70c-4ed3-b2b0-63c0aa8c0c3b
- target: 66bac9cf-1b1e-42f5-903d-d28a9d5e1e1a
type: RELATED_TO
direction: outgoing
strength: 0.9
edge_id: 5dee8386-3a39-414a-8acc-ddf551cc8924
- target: e6158e53-af06-40f7-bfd1-32fc481a2b3f
type: RELATED_TO
direction: incoming
strength: 0.75
edge_id: d6e68af6-ba0f-49d9-a730-dbcc38497ac1
- target: b522690f-6e80-4e70-8c92-0ed14aded8ff
type: RELATED_TO
direction: incoming
strength: 0.8
edge_id: 53de981d-03de-4992-ad98-e7b75e72d75b
---
# 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.