我怎样才能让 Cygwin 遵守 /etc/passwd 文件并使我的默认 shell 成为 bash 而不是 sh?
我推测它以某种方式由 Windows XP 控制,因为我之前遇到过权限问题,并且在更新 Win XP 上我的用户 ID 的权限后必须重新生成 /etc/passwd 文件。
答案1
尝试将此代码放入您的~/.emacs
启动文件中(并重新启动 Emacs):
(setq shell-file-name "bash"
explicit-shell-file-name "bash")
您还可以暂时重命名/bin/sh
为,/bin/sh.hold
以绝对确定 Emacs 是否正在调用/bin/sh
或/bin/bash
。请记住,在某些情况下(请参阅 Bash 手册页),Bash 将根据其调用方式(例如,如果argv[0]
是“sh”)表现为 sh。