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