PHP中的按位或运算符:出现异常结果是Bug还是特性?
问题解答:为何
echo 'https://www.tehplayground.com/' | '/';会输出ottps://www.tehplayground.com/ 首先明确:正常的Linux/Unix shell环境下,执行echo 'xxx' | '/'会直接报错——因为/是系统根目录,并非可执行文件,shell会返回类似bash: /: Is a directory的错误,根本不会产生字符替换类的输出。
你能得到ottps://...的结果,只有两种合理可能:
- 环境存在特殊配置:当前执行环境(比如你提到的tehplayground在线沙箱)里,
/被设置成了别名、函数或自定义可执行程序,其功能恰好是把输入字符串中的第一个h替换成o。比如有人给/设置了别名alias /='sed "s/h/o/"',管道传递的内容就会被处理成开头h变o的结果。 - 命令输入有误:你实际执行的命令可能不是写的
'/';,而是笔误前的正确替换命令(比如tr 'h' 'o'或者sed 's/h/o/'),只是输入时搞错了字符,才写成了'/';。
内容的提问来源于stack exchange,提问作者Guilherme Carvalho
相关产品推荐
相关产品推荐

