前言
对于经常使用adb的同学,不可避免的一定会这样用adb,比如我们想在手机里执行ps命令,于是在命令行中写下如下代码:
adb shell ps -ef
或者
adb shell "ps -ef"
两种方式都可以,你喜欢用哪个呢?你知道二者有什么区别吗?????
shell中双引号的2个作用
要想知道adb shell ps -ef 与 adb shell "ps -ef"的区别,得先知道双引号""在shell脚本中的作用,双引号的2个重要作用:
1、单词分隔功能失效(空白字符:换行、空格、制表符)
shell默认使用空白字符对单词分隔,此时由于单词分隔功能失效,所以"ps -ef" ,成为一个整体,从参数的角度看,算作1个参数(如果没有双引号,就算2个参数)
2、仍对4种特殊字符解释,其他特殊字符不解释
这四个特殊字符是:命令替换、变量名替换、数字计算、转义字符
命令替换:"$()"
变量名替换:"${}"
整数计算:"$[]"
转义字符:\n
adb命令的角度看:adb收到的参数数量不同
上面已经交代了shell中双引号的作用,这说明adb shell ps -ef和adb shell "ps -ef",参数数量的是不同的
adb命令收到3个参数,分别是shell、ps、-ef,bash解释器通过空白字符,分隔单词,所以是3个参数
adb shell ps -ef
adb命令收到2个参数,由于双引号已经让单词分隔功能失效,所以shell、以及"ps -

最低0.47元/天 解锁文章
1282

被折叠的 条评论
为什么被折叠?



