Cygwin- CD /cygdrive/c/path 不起作用



我已经安装了1.7.9版本的Cygwin。我正在尝试从.sh文件中制作cd"/cygdrive/c/path"。当我尝试执行该 shell 脚本时,它会抛出如下错误cd/cygdrive/c/path 不存在这样的文件或控制器。

请帮忙

如果我从 cygwin 终端执行任何命令,所有命令都工作正常,但是如果我将这些脚本放在.sh中并尝试从 cygwin 终端执行.sh脚本,它不起作用。我还添加了CYGWIN_HOME和环境变量路径。

请帮助在cygwin终端上执行shell脚本所需的任何类型的设置

在 Shell 脚本中输入了以下内容以进行测试

cd "/cygdrive/c/DCS/"
echo "$1"
echo "$2"
echo "$3"
echo "$4"
echo "$5"
echo "$6"
echo "$7"
echo "$8"
mv "./conf/env.conf_$3" "./conf/env.conf"

我执行了 ls -la/cygdrive/c 命令。检查DCS文件夹的以下权限

drwx------+ 1 Administrators Domain Users          0 Oct 29 17:26 DCS

我正在调用脚本并获取以下错误

$ ./run.sh
: No such file or directory line 1: cd: /cygdrive/c/DCS/
app
0.4.2
DEV
test
test
NO
both
0.4.1
mv: cannot stat `./conf/env.conf_DEVr': No such file or directory

执行ls -la /cygdrive/c以查看路径是否真的存在。

在你的 shell 脚本中,确保你正确地转义或引用路径,就像 mv "/cygdrive/c/path to file" /cygdrive/c/path to target .

只需从新的 vi 会话重写脚本即可。尝试使用简单的 cd 命令。如果您在记事本或其他编辑器中编写脚本,则可能还有其他转义字符。为我工作得很好

pwd输出什么?如果是/home/UserName那么这就是问题所在。mintty 的默认外壳在 /etc/passwd 中指定。如果不存在,请执行以下操作:

以管理员身份运行mintty.exe并输入:mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

这会将/cygdrive/c/Users/Name设置为主目录。我希望这能解决问题!

有关更多信息:https://cygwin.com/cygwin-ug-net/mkpasswd.html#:~:text=The%20mkpasswd%20program%20can%20be,disconnected%20from%20its%20domain%20controller。

您在

第一行缺少正确的shebang。将脚本修改为:

#!/bin/bash
cd "/cygdrive/c/DCS/"
echo "$1"
echo "$2"
echo "$3"
echo "$4"
echo "$5"
echo "$6"
echo "$7"
echo "$8"
mv "./conf/env.conf_$3" "./conf/env.conf"

你调用

$ ./run.sh

假设脚本包含有关哪个程序应执行它的信息并且错误说它没有找到它

: No such file or directory line 1: cd: /cygdrive/c/DCS/

最新更新