2013-03-22 92 views
4

我一直在Capistrano脚本中遇到问题,或者实际上是导致脚本失败的bash命令。我一直在从脚本得到错误说:字符串中奇怪的空格字符,那不是空格?

没有这样的文件或目录

所以这里的脚本位。

run "sudo ln -s #{shared_path}/readme.txt  #{shared_path}/readme-symlink.txt" 

经过仔细检查,发现readme.txt和readme-symlink.txt位之间有两个空格。偶然发现一个是空间,另一个只是一个奇怪的角色,看起来像一个空间,但事实并非如此。下面是它看起来像在崇高的文本,用于显示空白:

weird whitespace character

注意一下,在上面的图片中,只有一个readme.txt文件后点,然后又是“空间

所以这里是我的问题,这个字符究竟是什么,我只是很困惑如何通过在普通的键盘上打字来设法获得它?

+1

这绝对是一个空间,根据你粘贴'echo -n“t#”| hexdump'。 – alex 2013-03-22 08:06:14

+0

@alex你是对的,它是一个空间,看到我的答案,这是打破剧本的空间类型...;) – 2013-03-22 08:20:57

+0

当你将它粘贴到题。 – alex 2013-03-22 08:22:45

回答

4

所以我粘贴的字符串是http://www.asciivalue.com/index.php,第二个空格的ASCII值是160.根据http://www.ascii-code.com/这是一个空格,但它是一个非破空间,我相信这个命令行不是太高兴关于。

enter image description here

卸下NBSP修正我的剧本,我可以再去继续我的生活。

我只是难以理解创建该文件的人如何在第一时间获得了一个nbsp。

+0

足够有趣的是,Capistrano脚本文件是LITTERED,出现了正常空格,之后是非空白空格。 WTH! – 2013-03-22 08:22:50

+0

把任何字符放在一个字符串中是微不足道的。它不需要在用户的键盘上存在(它们可以复制和粘贴,也可以使用字符代码)。 – alex 2013-03-22 08:23:45

+0

很可能,该脚本是从网页复制的。这里解释它的用法。 http://www.sightspecific.com/~mosh/www_faq/nbsp.html – akaya 2013-03-22 08:24:32