猿问

为什么正确的shell脚本会提供包装/截断/损坏的错误消息?

为什么正确的shell脚本会提供包装/截断/损坏的错误消息?

我有一个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.comExpected: 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 myhostExpected: ssh: Could not resolve hostname myhost: Name or service not knownActual:   : 
Name or service not knownname myhost

为什么会发生这种事,我该怎么解决呢?


回首忆惘然
浏览 372回答 1
1回答
随时随地看视频慕课网APP
我要回答