Cygwin / etc / passwd不尊重/ bin / bash


0

我怎样才能让Cygwin尊重/ etc / passwd文件并使我的默认shell bash而不是sh?

我认为它是由Windows XP以某种方式控制的,因为我之前遇到了权限问题,并且在为我的用户ID更新Win XP的权限后不得不重新生成/ etc / passwd文件。


你是如何调用shell的?另外,检查是否设置了覆盖/ etc / passwd设置的SHELL变量。
ak2

SHELL=/bin/bash,它是由通过emacs的调用meta-x shell由X窗口系统内运行的开始startx
WilliamKF

对。你怎么知道你正在运行/ bin / sh而不是/ bin / bash?
ak2

因为提示sh-4.1$' and if I execute bash`我得到一个新的提示[xp-pro-sp3 ~] ???
WilliamKF

很公平。你确定你的/etc/passwd参赛作品是正确的吗?您可以使用mkpasswd -c为当前用户打印适当的条目。试试另一件事情是调用Cygwin的终端等中的一个mintty或者rxvt,它调用默认的shell,除非另行告知。如果你在那里获得bash,这就成了一个emacs问题。
ak2

Answers:


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将根据其调用方式表现为sh(例如,如果argv[0]是“sh”)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.