5 ms·
The trick is to enter bash from fish, run your command, and then call fish again. (fish)$ bash (fish>bash)$ source ./random.sh (fish>bash)$ fish
by AYBABTME 5y ago
The trick is to enter bash from fish, run your command, and then call fish again.
(fish)$ bash
(fish>bash)$ source ./random.sh
(fish>bash)$ fish
(fish>bash>fish)$
- jpambrun 5y agoI think you should hit ctrl+d when you are done in bash to avoid the nested fish>bash>fish.
- AYBABTME 5y agoThe idea is to return to a fish shell, but with all the env-vars that bash might have loaded as a result of executing the script.
- knjmooney 5y ago`exec <shell>` would avoid nested shells and inherit the environment. Which might be preferable if you find your terminal emulator complaining about processes still running on close.
- R0flcopt3r 5y agoOr just simply: (fish)$ bash -c ./random.sh
- gnubison 5y agoNo need to use -c there: (fish)$ bash random.sh
- AYBABTME 5y agoThat doesn't give you the env vars that the script might have set.
- pxc 5y agoYou can use fenv or bass for that. They run a snippet or script of bash in bash, then import all the environment changes for you https://github.com/oh-my-fish/plugin-foreign-env https://github.com/oh-my-fish/plugin-foreign-env https://github.com/edc/bass https://github.com/edc/bass
- stjohnswarts 5y agocould you explain this? How could the script set env vars before you run it??
- sjmulder 5y agoWould it be better to ‘exec’ the shells to avoid the nesting?