29 lines
1.1 KiB
Markdown
29 lines
1.1 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-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.
|