首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在windows操作系统上运行用linux编写的Shell脚本

在windows操作系统上运行用linux编写的Shell脚本
EN

Stack Overflow用户
提问于 2012-05-15 00:22:15
回答 2查看 642关注 0票数 2

我有在RedHat操作系统中编写的外壳脚本。我需要在windows环境中运行这个脚本。

所以我使用cygwin在windows上运行脚本。

但是当我使用以下命令运行脚本时

代码语言:javascript
运行
复制
sh housekeeper.sh 

它给出了以下错误,该错误在RedHat OS中不存在

代码语言:javascript
运行
复制
line 12: $'\r': command not found

但是我的脚本的第12行是空的

代码语言:javascript
运行
复制
  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这里有什么问题。

提前感谢您的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 00:29:36

cygwin sh最可能需要的是UNIX行分隔符(即\n),而不是Windows行分隔符\r\n,因此正在尝试执行\r,就好像它是命令一样。如果您在基于Windows的文本编辑器中编辑此脚本,则很容易发生这种情况。

如果您有命令dos2unix,则可以使用该命令或tr来删除\rs:

代码语言:javascript
运行
复制
tr -d '\r' < old.sh > new.sh
票数 5
EN

Stack Overflow用户

发布于 2012-05-15 00:24:13

在Windows上对此文件运行dos2unix命令,然后尝试运行此命令

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10587261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档