粘贴命令并回车,会提示找不到命令,诡异的是手动输入命令就没问题。

2020-05-05 10:03:44 +08:00
 jmyz0455

在 bash 里,我安装了 fail2ban,想查看是否启动成功,我粘贴一句网上看到的命令 sudo fail2ban-client ping,然后给我返回的是 bash: sudo fail2ban-client ping: No such file or directory,在 zsh 里输入同样的内容,返回 zsh: command not found: sudo fail2ban-client ping

如果输入了错的命令,zsh 会把输入的内容变为红色,然后我尝试着手动输入 sudo fail2ban-client ping,同样的命令,居然变绿了?回车一看,返回 Server replied: pong

很奇怪喔,为什么粘贴不行,手动输入就可以的?而且手动输入成功了之后,粘贴命令还是不行,假如我粘贴了两次命令,都是不行了之后,按上箭头,第一句命令还是红色的,回车也是不行。但是按两次上箭头,命令居然变绿了,按回车是正常返回???

真把我搞蒙了,有没有人能解释下这个有趣的现象?而且这个情况只出现在 sudo fail2ban-client ping 命令上,其他的我没遇到过。

3109 次点击
所在节点    Linux
5 条回复
burringcat
2020-05-05 10:10:36 +08:00
你这明显是三个命令,sudo,fail2ban-client 和 ping,上面两次被解析成一个命令了。至于为什么,我也不知道。( shrugs )
lewinlan
2020-05-05 10:31:39 +08:00
空格是标准的么。粘到记事本里再粘 bash 试试
infun
2020-05-05 10:34:26 +08:00
大概率非标准空格导致的
vk42
2020-05-05 10:48:05 +08:00
应该是 sudo 前面有个非标准空格或其它非可见字符被你一起 copy 了。试试用 echo "你拷贝的命令" | hexdump -C 看看
jmyz0455
2020-05-05 15:28:33 +08:00
@burringcat 破案了!

@lewinlan @infun 粘贴到 Sublime Text 3 上,果然不是标准空格,把空格重新改一下就可以了,谢谢各位。

@vk42 输出:
❯ echo 'sudo fail2ban-client ping' | hexdump -C
00000000 73 75 64 6f c2 a0 66 61 69 6c 32 62 61 6e 2d 63 |sudo..fail2ban-c|
00000010 6c 69 65 6e 74 c2 a0 70 69 6e 67 0a |lient..ping.|
0000001c

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/668595

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX