ADB原理(第四篇:深入理解adb命令有无双引号的区别)

本文探讨了adb命令中使用双引号对参数处理的影响,包括单词分隔的失效、特殊字符的处理以及重定向和管道符在bash解释器中的作用。理解这些有助于避免命令行中的常见问题。

前言

    对于经常使用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 -

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值