cygwin-cd / cygdrive / c / path无效

时间:2013-10-29 09:53:20

标签: cygwin

我安装了1.7.9版本的cygwin。我试图从.sh文件做cd“/ cygdrive / c / path”。当我试图执行该shell脚本时,它会抛出如下错误 cd / cygdrive / c / path没有这样的文件或直接存在。

请帮忙

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

请帮助完成shell脚本在cygwin终端上执行的任何设置

在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

Iam调用脚本并获得以下错误

$ ./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_DEV\r': No such file or directory

4 个答案:

答案 0 :(得分:1)

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

在您的shell脚本中,请确保您正确转义或引用路径,例如mv "/cygdrive/c/path to file" /cygdrive/c/path\ to\ target

答案 1 :(得分:0)

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

答案 2 :(得分:0)

pwd输出什么?如果是/home/UserName,那就是问题所在。薄荷的默认外壳在/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

答案 3 :(得分:0)

您在第一行缺少正确的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/