--- 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.