【发布时间】:2015-10-31 08:26:34
【问题描述】:
我有一个带有命令的 shell 脚本,它看起来应该可以工作,但它却失败了,并出现了奇怪的包装/截断/损坏的错误消息。示例:
$ ls -l myfile
-rw-r----- 1 me me 0 Aug 7 12:36 myfile
$ cat myscript
ls -l myfile
$ bash myscript
: No such file or directory
该文件显然存在,但即使我不存在,这也是我通常会收到的错误消息:
$ ls -l idontexist
ls: cannot access idontexist: No such file or directory
注意它是如何包含工具名称ls、消息字符串和文件名的,而我的却没有。
如果我尝试改用mysql,这就是我得到的结果。错误消息看起来像是被包装了,现在以引号开头:
Command: mysql -h myhost.example.com
Expected: ERROR 2005 (HY000): Unknown MySQL server host 'myhost.example.com' (0)
Actual: ' (0) 2005 (HY000): Unknown MySQL server host 'myhost.example.com
这是我的简单 ssh 命令,它应该可以工作,或者至少给出一个正常的错误消息,但它以冒号开头并以奇怪的破坏结束:
Command: ssh myhost
Expected: ssh: Could not resolve hostname myhost: Name or service not known
Actual: : Name or service not knownname myhost
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
我想知道是否值得交叉引用您的其他行尾问题。 (到目前为止,我已经看过这个和另一个;你还有更多吗?)
-
或者甚至关闭一个作为另一个的副本:)
-
@chepner 这是一个选择:A. 令人困惑地关闭为看似不相关的问题的副本,因为修复恰好解决了这两个问题,B. 笨拙地将多个问题添加到一个帖子中,或者 C. 只是发布两个。我选择了 C,将两者都添加到了 bash 标签 wiki,并将它们标记为社区答案,以明确表示这不是骗局:P
标签: bash shell sh carriage-return