2

我已经安装了 1.7.9 版本的 cygwin。我正在尝试从 .sh 文件中执行 cd "/cygdrive/c/path" 。当我试图执行该 shell 脚本时,它会抛出如下错误 cd /cygdrive/c/path no such file or directort 存在。

请帮忙

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

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

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

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

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

$ ./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

4 回答 4

1

做一个ls -la /cygdrive/c看看路径是否真的存在。

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

于 2013-10-30T14:02:28.287 回答
0

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

于 2020-06-09T10:12:02.123 回答
0

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

于 2017-09-05T09:04:02.950 回答
0

you are missing a proper shebang on the first line. Modify the script as:

#!/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"

you invocation

$ ./run.sh

assume that the script contains information about which program should execute it and the error says that it does not found it

: No such file or directory line 1: cd: /cygdrive/c/DCS/
于 2020-06-09T13:40:49.230 回答