LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: mathfeel

Ubuntu 的 sh

[复制链接]
发表于 2009-12-13 17:36:10 | 显示全部楼层
看看 ubuntu 里面的 /bin/sh 是不是指向 dash, dash 里面有内置的 echo 命令,和 /bin/echo 有不同的表现。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-13 20:04:49 | 显示全部楼层
Anyway原本的問題解決了、在sh下(不是bash)。

直接打入<ESC>就可以用Escape sequence了。
回复 支持 反对

使用道具 举报

发表于 2009-12-14 09:11:17 | 显示全部楼层
Post by ch_fb;2055226
楼上没懂我的意思,我的意思是说,虽然用的是同一个执行文件,但效果会不一样,它们的工作模式不同。不能看着 /bin/sh --> /bin/bash 就说两个一样,或许这个体会不是很强。但 view 和 vi 以及 vimdiff 就明显能体会到了。


你用 vim 当作 vi,和用一个 elvis 当作 vi ,完全不同。虽然你可以都使用 /bin/vi 作为名称。

当vim使用 /bin/vi 作为名称的时候,如果 vimrc 不存在, vim 将启动 vi 兼容模式,在该模式中,最大程度的保证 vi 的兼容性,但不保证屏蔽所有 vim 的扩展特性。

当bash使用 /bin/sh 作为名称的时候,如果 bashrc 没有相关设置,bash 将启动 sh 兼容模式,在该模式中尽量保证 sh 的兼容性,但不保证屏蔽所有 bash 扩展功能。——不要以为用了 sh 作名字就真的是 sh 了。

因此,用 bash 连接出的 sh ,跟用 dash 连接出的 sh,其行为可能是完全不同的,尤其对于那些 bash 扩展功能。
回复 支持 反对

使用道具 举报

发表于 2009-12-14 22:52:15 | 显示全部楼层
Post by poet;2055720
当bash使用 /bin/sh 作为名称的时候,如果 bashrc 没有相关设置,bash 将启动 sh 兼容模式,在该模式中尽量保证 sh 的兼容性,但不保证屏蔽所有 bash 扩展功能。


这个牛,尤其是busybox用一个程序的不同链接代替大部分常用命令.....busybox链到ls就是ls,busybox链到echo就是echo...........
回复 支持 反对

使用道具 举报

发表于 2009-12-17 20:16:37 | 显示全部楼层
Post by ch_fb;2054423
哪个 Linux 版本的 /bin/sh 不是指向 /bin/bash ?
哪个 Linux 版本的 /bin/sh 和 /bin/bash 是相同的?
哪个 Linux 版本的 /usr/bin/view 不是指向 /usr/bin/vi ?
哪个 Linux 版本的 /usr/bin/view 和 /usr/bin/vi 是相同的?

1 Ubuntu
2 基本没有。/bin/sh是指向默认shell的软链接,/bin/bash是可执行文件。
3 Ubuntu。/usr/bin/view -> /etc/alternatives/view -> /usr/bin/vim.gtk
4 基本没有。/usr/bin/view一般是链接,/usr/bin/vi是可执行文件(道理同上)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表