将日常 shell 切换到 fish 将会遇到那些坑?

2015-11-16 14:16:17 +08:00
 Feiox

弃 bash 转 zsh 只因补全,现在想转 fish 还是因补全!

那么,平时 shell python 脚本执行依然用 bash ,只是在 iterm2 中使用,会不会有些坑呢?
会不会有些命令会有不兼容的问题呢?

8836 次点击
所在节点    程序员
18 条回复
Feiox
2015-11-16 14:16:42 +08:00
据说, fish 是 90 后专用 fish 。。。。。。囧
windyboy
2015-11-16 14:22:05 +08:00
环境变量
weakish
2015-11-16 14:37:11 +08:00
> 平时 shell python 脚本执行依然用 bash

Python 的 subprocess 貌似是 /bin/sh ,一般也不会把 /bin/sh 软链到 fish

> 会不会有些命令会有不兼容的问题呢?

会。
nekoyaki
2015-11-16 16:04:33 +08:00
bash 里预先写好的环境变量可能继承不过来,需要你自己想办法,比如在 fish 里写,或者先启动 bash 再调用 fish 。
再就是如果你 alias 了命令, fish 里是继承不了的,只能自己写 fish 的 function 。
另外有些命令的特定参数形式,在 fish 下不能用,比如 golang 的一些命令;但是大多数问题不大。
yujia
2015-11-16 16:18:55 +08:00
你需要自己实现一下 sudo !!
还有就是 $$ 不是进程显示 pid 了
再还有就是执行一条命令 bash 里面是``扩起来,在 fish 里是圆括号。
如 chomd `whoami` 你得改成 chmod (whoami)
leopku
2015-11-16 17:31:06 +08:00
补全何须 fish

推荐 prezto
harry890829
2015-11-16 17:33:19 +08:00
我用 zsh 主要原因还是因为……在 shell 下打文件名,终于不用区分大小写了
lightening
2015-11-16 17:38:01 +08:00
一些 hijack shell 命令的工具不能用了
wikinee
2015-11-16 17:42:27 +08:00
@leopku 你们说的我都没听过,我就 zsh 还有时候会有奇怪的问题( ubuntu )下,后来发现 ubuntu 也不都是 bash ,还有可能是 dash 。。。
fityme
2015-11-16 17:52:30 +08:00
只在 shell 里用,没坑。唯一可能会坑的是,某些偏门的脚本和命令。你需要同时看懂 bash 和 fish 然后做修改和迁移
dogsteve
2015-11-16 18:21:33 +08:00
fish 的报错信息(error)和 bash 的不一样,有时候可能导致解决某个问题的时候 google 无力,浪费大量时间。
littleqz
2015-11-16 23:54:00 +08:00
因为语法与 bash 的差异,有时候会出现奇怪的错误,比如如果服务器上用户的默认 shell 是 fish 时, ssh-copy-id 会报错,需要 chsh -s /bin/bash 才行。不过我用 fish 也有一年多了,除了前面这个毛病以外,其他倒是感觉挺好的(其实主要是补全啦, zsh 那个补全插件我也试过,感觉还是 fish 的补全比较得劲,可能是习惯了吧 :)

建议 LZ 直接用就是了,觉得坑多不习惯换回去就是了, zsh 也蛮好的嘛。
littleqz
2015-11-17 00:00:09 +08:00
另外提醒一下: 如果用 fish 的话不要在配置文件中使用太多的 alias ,速度很慢!见 [这里]( http://sudotry.com/speed-up-fish-shell-startup.html)
hei1000
2015-11-17 00:43:29 +08:00
1. config 里面很多语法和 bash 不一样不兼容
2. 编译涉及到环境变量特别是 /etc/下面的环境变量会失败,而且不会告诉你是 fish 的问题
hei1000
2015-11-17 00:46:26 +08:00
@hei1000 3. 命令行里面一般程序调用可能要加参数引号或方斜杠的问题
DuckJK
2015-11-17 08:19:09 +08:00
原来用 fish 无法开机,后来换了个 SHELL 好了(也可能是别的原因)。
skl
2015-11-17 13:22:24 +08:00
使用 oh-my-fish 吧,解决一大堆兼容问题
xcodebuild
2015-11-17 18:21:47 +08:00
记得把 vim 和 emacs 里的 shell 都设置成 bash ,不然会有各种奇奇怪怪的兼容问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236529

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX