From cd59e9be533618001d96eb7c08189f3cb56f0196 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Fri, 27 Feb 2026 22:53:15 -0600 Subject: [PATCH] store: Fish config.fish sets SHELL=/bin/bash intentionally for tool compatibility --- ...nbash-intentionally-for-tool-com-fba35b.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 graph/configurations/fish-configfish-sets-shellbinbash-intentionally-for-tool-com-fba35b.md diff --git a/graph/configurations/fish-configfish-sets-shellbinbash-intentionally-for-tool-com-fba35b.md b/graph/configurations/fish-configfish-sets-shellbinbash-intentionally-for-tool-com-fba35b.md new file mode 100644 index 00000000000..2ec4a472410 --- /dev/null +++ b/graph/configurations/fish-configfish-sets-shellbinbash-intentionally-for-tool-com-fba35b.md @@ -0,0 +1,28 @@ +--- +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.