[20211011]变态的windows批处理9.txt
--//偶尔我会在windows下调式bash shell的脚本,单行执行看看结果.
--//说句真心话,windows批处理太不灵活了,遇到的问题相当怪异,很容易搞错.
--//例子:
d:\>d:\tools\linux\usr\local\wbin\echo.exe -n abcdef | tr 'a-z' "A-Z"
BCDEFG
--//什么会输出BCDEFG呢,实际上windows下字符串使用双引号,例子:
d:\>d:\tools\linux\usr\local\wbin\echo.exe 'a-z' "A-Z"
'a-z' A-Z
--//这样相当于' => A a->B .....
d:\>d:\tools\linux\usr\local\wbin\echo.exe -n 'abcdef | tr 'a-z' "A-Z"
ZBCDEFG
--//' 对应 A吗 ,怎么变成Z.
d:\>d:\tools\linux\usr\local\wbin\echo.exe -n 'abcdef | tr 'a-f' "A-F"
FBCDEFF
--//码表展开
'abcdef'
ABCDEF
--//实际剩下部分的对应都是F.因为后面有出现逗号,最终 ,=>F
--//再来看一个例子:
d:\>d:\tools\linux\usr\local\wbin\echo.exe -n 'abcdef | tr 'a-f "A-F"
ABCDEFF
--//码表展开
'abcdef
ABCDEFF
--//实际上linux也应该注意,比如:
$ echo 1 2 3 | awk '{print $2}'
2
$ echo 1 2 3 | awk "{print $2}"
1 2 3
--//实际上awk "{print $2}"被解析为$2某个shell变量,相当于执行
$ echo 1 2 3 | awk "{print }"
1 2 3
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2795256/ ,如需转载,请注明出处,否则将追究法律责任。