1.7 KiB
1.7 KiB
| id | type | title | tags | importance | confidence | created | updated | relations | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| fba35b41-aced-4f74-ae01-dfa062df0764 | configuration | Fish config.fish sets SHELL=/bin/bash intentionally for tool compatibility |
|
0.6 | 0.8 | 2026-02-28T04:53:15.735767+00:00 | 2026-03-01T16:44:07.115190+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.