Open richardmyu opened 3 years ago
.zshrc
文件多行输出 _oo0oo_
088888880
88" . "88
(| -_- |)
0\ = /0
___/'---'\___
.' \\\\| |// '.
/ \\\\||| : |||// \\
/_ ||||| -:- |||||- \\
| | \\\\\\ - /// | |
| \_| ''\---/'' |_/ |
\ .-\__ '-' __/-. /
___'. .' /--.--\ '. .'___
."" '< '.___\_<|>_/___.' >' "".
| | : '- \'.;'\ _ /';.'/ - ' : | |
\ \ '_. \_ __\ /__ _/ .-' / /
====='-.____'.___ \_____/___.-'____.-'=====
'=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 iii 永不死机
那天偶然看到这个,感觉有趣,就建立的 md 存了下来。今天使用 bash 的时候,突然想到:要是一打开 bash,自动输出这个图就好了。于是就在 .zshrc
设置了 echo '上”图“'
,然后执行的时候,报了一个错:
.zshrc:12: parse error near `|'
我用的是单引号,不转义的,为啥还会有问题呢?然后鬼使神差的(不能说完全是吧,至少还知道有些配置文件,最外层只能用双引号包裹,比如 JSON),在单引号外面再套一层双引号,竟然成功了...:joy::joy::joy:,突然就被自己给秀了。
然后我试着换一下位,外单引号内双引号,结果却是报错。
至少在控制台,可以看到:
echo "'\'"
'\'
echo '"\"\
"\"
嵌套两层引号,基本不会有出现特殊字符的问题,至于引号的嵌套关系,不影响结果,而在 .zshrc
文件中,是有影响。以我有限的知识,暂时不能明白为啥,先记录下来吧!
后来看着图发呆,好像明白了,只顾着看包裹的引号,却一直忽略了”图“中的引号构成的影响:rage::rage:。
单引号
由于图里引号干扰,实际解析的字符应该是:
# 第一部分
' _oo0oo_
088888880
88" . "88
(| -_- |)
0\ = /0
___/'
# 第二部分
---
# 第三部分
'\___
.'
# 第四部分
\\\\| |//
问题就出在第四部分:\\\\| |//
没有引号包裹:
echo \\\\| |//
zsh: parse error near `|'
从反馈看不出是哪个 |
引起的,但命令行标红的是第二个。
而在外面加了双引号后,恰好,双引号之内,没有 $,
,` 的干扰,双引号之外没有特殊字符。这样,就可以去掉单引号,而只用双引号包裹。(不去掉单引号,输出的图会带有单引号的)
同样的放入 power shell 的 $profile
,则会出现问题:
_oo0oo_
088888880
88
.
88
(| -_- |)
0\ = /0
___/'---'\___
.' \\\\| |// '.
/ \\\\||| : |||// \\
/_ ||||| -:- |||||- \\
| | \\\\\\ - /// | |
| \_| ''\---/'' |_/ |
\ .-\__ '-' __/-. /
___'. .' /--.--\ '. .'___
." '< '.___\_<|>_/___.' >' ".
| | : '- \'.;'\ _ /';.'/ - ' : | |
\ \ '_. \_ __\ /__ _/ .-' / /
====='-.____'.___ \_____/___.-'____.-'=====
'=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 iii 永不死机
其他都好,就是眉心点出现偏移。然后注意到,.
和 88 都换行了,而且前面都有空格,经过测试,88没有空格,会换行,而 .
没有空格,则整个图都不会输出。于是我连同前后各一个空格,将 .
一起用双引号包起来:
_oo0oo_
088888880
88" . "88
(| -_- |)
0\ = /0
___/'---'\___
.' \\\\| |// '.
/ \\\\||| : |||// \\
/_ ||||| -:- |||||- \\
| | \\\\\\ - /// | |
| \_| ''\---/'' |_/ |
\ .-\__ '-' __/-. /
___'. .' /--.--\ '. .'___
." '< '.___\_<|>_/___.' >' ".
| | : '- \'.;'\ _ /';.'/ - ' : | |
\ \ '_. \_ __\ /__ _/ .-' / /
====='-.____'.___ \_____/___.-'____.-'=====
'=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 iii 永不死机
双引号被输出了,不过好像也不影响 😜😜😜
echo "hello".world
# 无输出
echo "hello" .world
hello
.world
echo "hello" ."world"
hello
.
world
echo "hello"" . ""world"
hello" . "world
稍微查了一下,没有查到可以解释的😔😔😔。
curl
中文乱码在 PowerShell 配置文件中添加:
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
cmd 的也试过,但是没效果。
Using UTF-8 Encoding (CHCP 65001) in Command Prompt / Windows Powershell (Windows 10)
1.
鈹€
使用
curl wttr.in
查询天气时,出现乱码。异常返回:
正常返回:
对比发现发生乱码的地方:
°C
‘
┐
↑
┌
─
├
⚡‘‘⚡‘‘
‚‘‚‘‚‘‚‘
确实很乱,比如
|
有的能正常解析,有的却乱码,被解析成鈹?
。