Codenvy是一个IDE,当您工作的环境进入睡眠状态时,它会删除gitignore中的所有文件。因此,每次我开始在Codenvy中工作时,都需要放回这些文件。这很麻烦,因此我试图为此在Codenvy中添加称为命令(脚本)的内容。
我有以下内容:
1. cp vars-user-portal/variables.env user-portal/variables.env
2.
3. cp vars-user-portal/serviceAccountKey.json user-portal/serviceAccountKey.json
4.
5. cp vars-user-portal/.env user-portal/client/.env
6.
7. cd user-portal && npm install
8.
9. cd user-portal/client && npm install
10.
11. xdg-open user-portal/client/.env
运行此命令时,我得到输出:
/bin/bash: line 1: $'\r': command not found
/bin/bash: line 3: $'\r': command not found
/bin/bash: line 5: $'\r': command not found
Usage: npm <command>
...
Did you mean one of these?
install
uninstall
unstar
/bin/bash: line 7: $'\r': command not found
Usage: npm <command>
...
/bin/bash: line 9: $'\r': command not found
xdg-open: file '.env' does not exist
我的印象是,当一行上有空格时,它将视为单独的命令。知道如何使该脚本起作用吗?
答案 0 :(得分:1)
您的文件很可能具有\r\n
行尾,应将其更改为\n
行尾。
使用命令行sed
实用程序转换文件的简单方法如下。
sed -i 's/\r\n/\n/g' "./path/to/file"
(未经测试)。
通常,Windows应用程序使用“回车符”和“换行符”来终止文本文件中的行,这些字符通常写为转义码\r\n
。
另一方面,类Unix系统仅使用换行符来终止行,或者将new作为换行符结束,Unix仅使用'换行符'\n
。
请参阅:http://www.cs.toronto.edu/~krueger/csc209h/tut/line-endings.html
注意:
另外要提到的是,如果要执行脚本,则应始终在脚本顶部添加一个shebang,否则,如果要单独获取,则不要添加脚本。 #!/bin/bash
用于bash脚本,#!/bin/sh
用于可移植或POSIX兼容脚本。