我刚在我的Windows XP电脑上安装了Cygwin,对Unix非常陌生,正在学习中...
我怎么知道Cygwin安装在我的系统上的是哪个编辑器?vi、vim、nano、ted、jow等所有编辑器都无法使用...尝试使用“记事本”,但它将文件保存为.txt格式....
我还有一个困惑,即使没有添加shebang行和.sh扩展名创建的文件,当我被授权执行时,我也能够运行它们...如果我没有在脚本中添加shebang行,该如何运行脚本?
我刚在我的Windows XP电脑上安装了Cygwin,对Unix非常陌生,正在学习中...
我怎么知道Cygwin安装在我的系统上的是哪个编辑器?vi、vim、nano、ted、jow等所有编辑器都无法使用...尝试使用“记事本”,但它将文件保存为.txt格式....
我还有一个困惑,即使没有添加shebang行和.sh扩展名创建的文件,当我被授权执行时,我也能够运行它们...如果我没有在脚本中添加shebang行,该如何运行脚本?
我在Cygwin中遇到了这个问题和其他一些问题。Vim、Emacs(以及许多其他标准的Unix程序)都不会被默认安装在Cygwin中。
你需要再次运行设置程序(无需先卸载),并明确添加你想要的内容。
我写了一篇关于此的博客文章:http://wilsonericn.wordpress.com/2011/08/15/cygwin-setup-gotchas/
如果您的$SHELL能够解释脚本,则不需要使用shebang行。例如,如果您编写一个bash脚本并通过bash调用它,则不需要shebang行。
要了解安装了哪些编辑器,请再次运行cygwin setup.exe文件并浏览包列表(在编辑器组下),您还可以选择安装其他编辑器。
\r\n
)行尾。Cygwin的默认配置使用Unix格式的文本文件,带有LF(\n
)行尾。我刚刚尝试使用记事本创建脚本bar.sh
(为了避免.txt
扩展名,请将“另存为类型:”更改为“所有文件(*.*)”);当我尝试运行它时,我得到了“./bar.sh: line 2: $'\r': command not found”的错误。虽然有解决方法,但如果您要使用Cygwin,最好学习使用它提供的编辑器之一。 - Keith Thompson如果您有其他脚本,您应该能够以这种方式启动大多数没有sheband行的脚本:
bash script.sh
tcsh script.csh
python script.py
perl script.pl
顺便说一下,如果你是Unix新手,我建议你适应一个高级文本编辑器。我不想恶意攻击,但使用XEmacs或Vim会对你有很大帮助(语法高亮、片段使用等等)。我已经使用Vim好几年了,可能再也无法回到基本的编辑器了...