我安装了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
答案 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
设置为主目录。我希望这能解决问题!
答案 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/