【问题标题】:How do I run dna.sh from cygwin? [duplicate]如何从 cygwin 运行 dna.sh? [复制]
【发布时间】:2013-09-15 19:06:41
【问题描述】:

我从 Github 下载了一个 dna.sh,但我似乎无法让它在 cygwin 上运行。 当我使用命令时,

sh dna.sh

,我得到了错误,

 : No such file or directory
dna.sh: line 7: $'\r': command not found 
dan.sh: line 9: syntax error near unexpected token `$'do\r' '
'na.sh: line 9: `for j in f b; do

dna.sh 的内容在这里:https://github.com/jaykru/colorscripts/blob/master/dna.sh

【问题讨论】:

  • 搜索with this寻找其他类似案例。
  • 尝试做一个dos2unix sna.shfromdos dna.sh
  • 你确定你复制的内容是正确的吗?因为它对我有用。
  • 我想知道 Windows 行尾中额外的 \r 花费了 IT 行业多少钱?
  • 你试过bash dna.sh还是只是./dna.sh?也许 cygwin 中的 sh 没有像在 linux 系统上那样链接到 bash

标签: windows bash shell cygwin


【解决方案1】:

您是否在 Windows 中编写了文件,现在正在 Cygwin 中执行它?请不要告诉我你用过Notepad.exe

一巴掌!

您的问题是 Windows 在每行 \r\n 的末尾放置了一个回车符和一个换行符。但是,Unix(和 Cygwin)坚持认为正确的行尾组合只是换行符\n

使用真正的程序编辑器来编写程序。不要使用记事本。下载 Notepad++ 并将其设置为在所有 shell 脚本上使用 LF(Unix 行尾)。或者,学习在 Cygwin 中编辑文件。你可以使用 VIM 或 gmacs(gmacs 是一个很棒的操作系统。可惜没有编辑器。//old Editor warjoke//)。

其实GUI editors on Cygwin也有很多种,但你得让X11工作。

你可以在 Cygwin 上尝试dos2unix -- 如果你已经安装了它。

【讨论】:

  • 非常感谢!你是对的。我知道我不应该使用 Notepad.exe,但我不知道我必须将 Notepad++ 设置为 LF。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 2017-04-08
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
相关资源
最近更新 更多