我有在RedHat OS中编写的shell脚本。我需要在windows environemtn中运行此脚本。
所以我用cygwin在windows上运行脚本。
但是当我使用
运行脚本时sh housekeeper.sh
它为我提供了以下错误,但在RedHat OS中没有恢复
line 12: $'\r': command not found
但我的脚本的第12行是空的
08 #
09 ######################################################################
10 #### PARAMETERS TO SET BEGIN
11 ######################################################################
12
13 # archive setttings
14 ARCHIVE_USER=abc # archive storage user name (default)
15 ARCHIVE_GROUP=app # archive storage user group (default)
16 ARCHIVE_PATH=/test/file # archive storage directory (default)
17 ARCHIVE_DELAY=+8
有人可以告诉我这里的剧本或cygwin这里有什么问题。
提前感谢任何帮助
答案 0 :(得分:5)
cygwin sh
很可能期望UNIX行分隔符(即\n
),而是找到Windows行分隔符\r\n
,因此尝试执行\r
好像是一个命令。如果您在基于Windows的文本编辑器中编辑此脚本,则很容易发生这种情况。
如果您拥有dos2unix
命令,则可以使用该命令,或tr
删除\r
:
tr -d '\r' < old.sh > new.sh
答案 1 :(得分:1)
在Windows上对此文件运行dos2unix
命令,然后尝试运行此