shell脚本实例

【烂笔头】adb命令篇

跟風遠走 提交于 2020-01-21 15:35:58
前言 Android的adb提供了很多命令,功能很强大,可以为开发和调试带来很大的便利。当然本文并不是介绍各种命令的文章,而是用于记录在平时工作中需要经常使用的命令,方便平时工作时使用,所以以后会持续新增一些常用而且很有用的命令。也希望这些命令能给读者带来一定的帮助。 当前已经记录的命令主要涉及到如下功能: 一、常用的与Permission相关的adb命令 二、通过Wifi连接连接手机 三、adb操作四大组件 四、实现一个操作多条adb命令的脚本 五、用adb dump一些信息 六、adb与进程 一、 常用的与Permission相关的adb命令 Android工具adb提供了一些命令,可以方便查看、授权、取消应用的权限,可以为调试程序带来不少的方便,下面简单介绍几个常见的命令。 1、查看指定app中权限申请情况 命令:adb shell dumpsys package [包名] 用途:该命令用于获取该app的package信息,Permission信息只是其中的一部分。 命令使用示例: 1 adb shell dumpsys package cn.aaa.bbb 如下下截图为该命令中关于权限的部分信息: 该图显示了4部分权限: (1)declared permissions。该应用自己声明(即自定义)的权限,这里显示了权限名,权限等级,以及在什么时候获取该权限(INSTALLED

shell脚本结构化之循环命令

寵の児 提交于 2020-01-20 19:59:52
循环是编程的一个重要部分,bash shell提供了三种可用于脚本中的循坏命令 for 命令 while命令 until 命令 这些都没有好讲的,注意下格式就行了,看两个实例 查找可以执行的文件 #!/bin/bash IFS = : for folder in $PATH do echo " $folder :" for file in $folder /* do if [ -x $file ] then echo " $file " fi done done 创建多个用户账号 #!/bin/bash input = "users.csv" while IFS = ',' read -r userid name do echo "添加用户 $userid " useradd -c " $name " -m $userid done < " $input " 来源: CSDN 作者: weixin_46025444 链接: https://blog.csdn.net/weixin_46025444/article/details/104050657

shell基础使用

社会主义新天地 提交于 2020-01-18 12:31:15
2、shell 2.1、shell基础正则表达式 ​ 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。并规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式( Regular Expression ) 。 2.1.1、普通元字符 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“ n ”匹配字符“ n ”。“ \n ”匹配一个换行符。串行“ \\ ”匹配“ \ ”而“ \( ”则匹配“ ( ”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“ \n ”或“ \r ”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“ \n ”或“ \r ”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo 能匹配“ z ”以及“ zoo ”。 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“ zo+ ”能匹配“ zo ”以及“ zoo ”,但不能匹配“ z ”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“ do(es)?

两个有用的shell工具总结

六眼飞鱼酱① 提交于 2020-01-17 07:11:24
shell工具之一:sed sed基础 sed编辑器被称作流编辑器,与常见的交互式文本编辑器刚好相反。文本编辑器可以通过键盘来交互式地插入、删除、替换文本中的数据;而流编辑器是基于一组预先的规则来编辑数据流。 sed命令的格式如下: sed options script file 选项 说明 -e script 将script中指定的命令添加到运行的命令中 -f file 将file中指定的命令添加到运行的命令中 -n 不为每个命令生成输出,等待print命令来输出 说明: script用于指定作用在数据量上的单个命令。 如果需要使用多个命令,有 两种选择 :可以在命令行中使用-e选项指定,不同命令之间用分号隔开;或者使用-f选项在文件中指定。 默认情况下,sed编辑器将指定的命令应用到STDIN输入流上,而不作用于数据源本身,就是说sed不会修改文本文件中的原数据。 1 替换命令substitute s/pattern/replacement/flags flags 取值如下: 数字: 表示replacement将替换 每行中 第几次出现的pattern g : 表示replacement将替换所有出现的pattern p : 打印用replacement替换过的行(经常与-n选项搭配使用,-n禁止sed输出,而p会输出修改过的行

tcsh 基本命令

ε祈祈猫儿з 提交于 2020-01-15 21:27:37
shell 是一种命令行程序, linux 用户可以通过 shell 与操作系统内核进行交互。 shell 分为好几种:sh,bash,csh,tcsh, 其中 tcsh 是 csh 的增强版,常用的两种 shell 就是 bash 和 tcsh。 一般linux 默认shell 是 bash,但是IC公司用的较多的是 tcsh,二者的语法和内建命令相差较大,关于bash,网上资料非常多,这里主要记录 tcsh 的语法和基本命令。 具体使用哪个shell 可以在脚本第一行定义: #! /bin/bash 或者 #! /bin/tcsh 查看当前默认shell 可以看环境变量 echo $SHELL tcsh 基本语法: 1. 创建字符串变量: set var = hello; set var01 = “hello world” ;echo $var # 注意等于号 创建数值变量: @ num = 101 ; @ n01 = $num * 2 ; echo $n01 # 注意用 @ 开头,且@与变量之间需留空格 2. 控制流(if while foreach ) (a). if (condition) then # 注意 if 和 then 必须写在同一行,if 条件用小括号     cmd01     cmd02 # 可以写很多行命令   else     cmd03  

Shell——你只需要了解这么多

丶灬走出姿态 提交于 2020-01-15 09:19:33
一.Shell简介 Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。 二.两类程序设计语言 我经常说道shell脚本,其实是因为Shell是一种脚本语言,也就是解释性语言。程序设计语言可以分为两类:编译型语言和解释型语言。 语言 区别 编译型语言 需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点 解释型语言 也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降 三.Shell脚本解释器 Linux的Shell脚本解释器种类众多,一个系统可以存在多个shell脚本解释器,可以通过cat /etc

shell传递参数-$的用法(三)

我只是一个虾纸丫 提交于 2020-01-11 07:27:23
$n:n代表一个数字,指执行脚本的第n个参数。特别地,$0指执行的文件名 [root@ipha-dev71-1 exercise_shell]# cat test.sh #!/bin/bash echo "shell 传递参数实例!" echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; [root@ipha-dev71-1 exercise_shell]# ./test.sh 1 2 3 shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3 $#:传递到脚本的参数个数 $*:以一个单字符串显示所有向脚本传递的参数 如 $1 $2 … $n [root@ipha-dev71-1 exercise_shell]# cat test.sh #!/bin/bash echo "shell 传递参数实例!" echo "第一个参数为:$1"; echo "参数个数为:$#"; echo "第二个参数为:$2"; echo "传递的参数作为一个字符串显示:$*"; [root@ipha-dev71-1 exercise_shell]# ./test.sh 1 2 3 shell 传递参数实例! 第一个参数为:1 参数个数为:3 第二个参数为

linux shell 基础语法A-1

巧了我就是萌 提交于 2020-01-10 18:40:42
从echo开始 echo可以看做print printf之类的东西。几乎所有的shell脚本都离不开echo。 echo有如下几个作用: (1)输出脚本执行流程的提示信息 (2)交互式脚本打印提示信息 (3)构建格式化的日志 (4)调试脚本时,可以用来打印出一些中间变量的值(当然也可以用bash +x调试执行脚本) 常用的option -n:不换行打印 -e:识别转移字符(如\t) 许多脚本的usage就是echo来实现的(cmd -h or cmd --help)。 变量 变量分类:一般在shell中分为环境变量,用户变量,位置变量等的特殊变量三大类。shell是一种弱类型语言(强类型语言c,变量定义后要强制变换才能使用另一种变量类型,而shell不关心,变量的类型依据使用环境自己变化)。 但我们还是可以把shell中使用变量分为几个场景: (1)字符串 root@ubuntu-jpk:~# echo "hello world" hello world (2)数值 root@ubuntu-jpk:~# a=1 root@ubuntu-jpk:~# b=2 root@ubuntu-jpk:~# c=$((a+b)) root@ubuntu-jpk:~# echo $c 3 (3)一维数组(列表) root@ubuntu-jpk:~# list=(China America

linux shell 基础语法A-2

不问归期 提交于 2020-01-10 18:39:30
A-1讲了一些基本的语法,A2部分继续上次的内容接着讲。 shell是一门编程语言,自然也有结构化的表示方法。常见的编程语言结构化就是判断和循环。shell中的判断分为3类:数值判断,字符判断,文件判断。 判断的几种形式 If command Then command Fi If command Then command Else command Fi If command Then command Elif command Then command Else command fi (1)数字判断 实例:简单的猜数字 (2)字符判断 实例:判断输入的选项 (3)文件判断 实例:创建log文件前检查目标路径是否存在 #!/bin/bash if [ ! -d /mnt/123testlog/2019-08-31 ] then mkdir -p /mnt/123testlog/2019-09-31 fi 还需要关注 If test xxxx的用法 对参数值得判断处理 复合条件判断 If [] && [] If [] || [] 双括号 --双圆括号(数学表达式高级功能) --双方括号(字符串高级功能) 多选择判断时使用if结构就比较繁琐了,采用case更佳 Case Case xxx in p1) cmd ;; p2) cmd ;; *) default cmd ;; Esac

Shell传递参数

可紊 提交于 2020-01-10 15:04:23
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名: #!/bin/bash echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; 为脚本设置可执行权限,并执行脚本 $ chmod +x test.sh $ ./test.sh 1 2 3 输出结果如下所示: Shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3 另外,还有几个特殊字符用来处理参数: echo "Shell 传递参数实例!"; echo "第一个参数为:$1"; echo "参数个数为:$#"; echo "传递的参数作为一个字符串显示:$*"; 执行脚本 $ chmod +x test.sh $ ./test.sh 1 2 3 输出结果如下所示: Shell 传递参数实例! 第一个参数为:1 参数个数为:3 传递的参数作为一个字符串显示:1 2 3 * 与 @ 区别: 相同点:都是引用所有参数。 不同点:只有在双引号中体现出来