Babun (cygwin) 和 .sh 文件。出了什么问题?

Babun (cygwin) 和 .sh 文件。出了什么问题?

我正在尝试在 Windows 下执行一些非常简单的脚本 .sh,但我真的做不到。我对脚本和 babun 完全是初学者,所以我试着解释我的问题。

我有 2 个文件,需要使用 sed 命令来操作它们。

输入的命令是:

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/

sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_01.xml</filename>|" WebGrab++.config.xml

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/

sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_02.xml</filename>|" WebGrab++.config.xml

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/

sed -i '/<!--02-->/,/<!--19-->/d' WebGrab++.config.xml

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/

sed -i '/<!--01-->/,/<!--02-->/d' WebGrab++.config.xml

sed -i '/<!--03-->/,/<!--19-->/d' WebGrab++.config.xml

逐一发送这些命令,一切正常。

如果我在一个 .sh 文件中添加相同的命令,则无法正常工作。在 shell 上,当我执行我创建的文件时,我发现我使用的所有路径都是错误的。为什么如果我逐个运行命令,一切都正常,而如果我运行一个脚本,却不行?

这是我制作的 cygwin.sh 文件

#!/bin/bash

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/
sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_01.xml</filename>|" WebGrab++.config.xml
cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/
sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_02.xml</filename>|" WebGrab++.config.xml
cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/
sed -i '/<!--02-->/,/<!--19-->/d' WebGrab++.config.xml
cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/
sed -i '/<!--01-->/,/<!--02-->/d' WebGrab++.config.xml
sed -i '/<!--03-->/,/<!--19-->/d' WebGrab++.config.xml

我收到的错误:

{ bash }  » ./cygwin.sh
/cygdrive/c/ProgramData/ServerCare/data/bash
./cygwin.sh: line 2: $'\r': command not found
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_01/
: No such file or directoryonfig.xml
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_02/
: No such file or directoryonfig.xml
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_01/
: No such file or directoryonfig.xml
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_02/
: No such file or directoryonfig.xml
 sed: can't read WebGrab++.config.xml: No such file or directory

另外,我每天需要编辑文件 2 次,有没有一种方法可以启动文件 .sh 并在 Babun shell 中执行它?我知道在 Windows 7 下自动启动它的方法,但不知道如何关联备用 shell。如果我启动文件 .sh 并选择 babun 来执行它,什么也不会发生。

谢谢大家能回答我的建议:)

感谢 DavidPostill 帮助我进行编辑。

答案1

提示在这里:

./cygwin.sh:第 2 行:$'\r':未找到命令

将文件从 CRLF 行终止转换为仅 LF 终止

d2u ./cygwin.sh 

在 cygwin 上,该d2u命令属于包 dos2unix-7.3.4-1,我认为 babun 也应该有它。

相关内容