【问题标题】:Correct format for a command in CodenvyCodenvy 中命令的正确格式
【发布时间】:2019-12-11 09:13:44
【问题描述】:

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

我的印象是,当一行中有空格时,它会将其视为单独的命令。知道如何让这个脚本工作吗?

【问题讨论】:

  • 检查您的文件是否有特殊字符:cat -A filecat -v file

标签: bash terminal command codenvy


【解决方案1】:

您的文件很可能有\r\n 行尾,应将其更改为\n 行尾。

使用命令行sed 实用程序转换文件的简单方法如下。

sed -i 's/\r\n/\n/g' "./path/to/file"(未经测试)。


通常,Windows 应用程序使用“回车”和“换行”字符来终止文本文件中的行,通常写为转义码 \r\n

另一方面,类 Unix 系统仅使用换行符来终止行,或者以新行结尾,Unix 仅使用“换行符”字符 \n

见:http://www.cs.toronto.edu/~krueger/csc209h/tut/line-endings.html


注意:

另外提一下,如果要执行脚本,则应始终在脚本顶部添加 shebang,否则如果要单独获取脚本,则不要添加。 #!/bin/bash 用于 bash 脚本,#!/bin/sh 用于可移植或符合 POSIX 的脚本。

【讨论】:

  • 不确定我是否理解。这不是我拥有的单独文件。这些命令是 Codenvy 的一部分,具体内容在我的 Original Post 中。我现在也添加了截图。
  • @Nick 我使用 Codeenvy 已经有一段时间了,而且我的经验非常有限,不过,\r 肯定几乎总是返回字符转义码。您发布的输出是与我描述的问题一起打印的。并不是说您将无法看到行尾转义码,因为它们不是由编辑器故意呈现的。请注意,任何典型的文本编辑器都允许创建新行,并且由于数据以连续字符串的形式出现,因此需要保留代码来表示换行。
  • @Nick 至于 Codenvy 上下文,我不确定,虽然寻找可以指定行尾的设置,应该设置为 lf [line feed] 而不是 @987654332 @ [回车和换行] 以导致 \n 行结束。希望这会有所帮助。
  • @Nick 另一个可能的问题,虽然我会说不太可能,但您可能已经将命令与crlf 行结尾一起粘贴了。这可以通过将外部行尾转换为lf,然后再次粘贴来解决。如果我评论的这些想法中的任何一个解决了您的问题,请告诉我,以便我可以添加到我的答案中。干杯。
  • 我找到了一种解决方法:如果我只是将它们放在一行中,并在它们之间加上 &&,那么它就可以工作。所以是的,你在事业上是绝对正确的,所以我接受了你的回答。我不知道如何在 Codenvy 中更好地解决这个问题,而不是这个解决方法。
猜你喜欢
  • 2017-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多