python调用Shell脚本,有两种方法:ossystem(cmd)或ospopen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。
现假定有一个shell脚本
testsh:
#!/bin/bash
echo "hello world!"
exit 3
话不多说,直接开始
eg:
echo "Linux" | awk '{printf "|%-15s|\n",$1}'
|Linux |
说明:对于echo命令的输出,Linux是经管道发给awk。printf函数包含一个控制串。百分号让printf做好准备,它要打印一个占15个格、向左对齐的字符串,这个字符串夹在两个竖杠之间,并且以换行符结尾。百分号后的短划线表示左对齐。控制串后面跟了一个逗号和$1。printf将根据控制串中的格式说明来格式化字符串Linux。
echo "Linux" | awk '{printf "|%15s|\n",$1}'
| Linux|
说明:字符串Linux被打印成一个占15 格、向右对齐的字符串,夹在两个竖杠之间,以
换行符结尾。
cat employees
Tom Jones 4424 5/12/66 543354
Mary Adams 5346 11/4/63 28765
Sally Chang 1654 7/22/54 650000
Billy Black 1683 9/23/44 336500
awk '{printf "The name is: %-15s ID is %8d\n", 3}' employees
The name is Tom ID is 4424
The name is Mary ID is 5346
The name is Sally ID is 1654
The name is Billy ID is 1683
说明:要打印的字符串放置在两个双引号之间。第一个格式说明符是%-15s,它对应的参数是$1,紧挨着控制串的右半边引号后面的那个逗号。百分号引出格式说明:短划线表示左对齐,15s表示占15格的字符串。这条命令用来打印一个左对齐、占15格的字符串,后面跟着字符串的ID和一个整数。
echo -e识别转义和特殊意义的符号,如换行符、n、制表符\t、转义符\等。
[root@xuexi tmp]# echo 'Hello World!\n';echo "Hello World"!
Hello World!\n
Hello World!
[root@xuexi tmp]# echo -e 'Hello World!\n';echo "Hello World"!
Hello World!
Hello World!
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-42f\n" 郭靖 男 661234
printf "%-10s %-8s %-42f\n" 杨过 男 486543
printf "%-10s %-8s %-42f\n" 郭芙 女 479876
运行
姓名 性别 体重kg
郭靖 男 6612
杨过 男 4865
郭芙 女 4799
%s %c %d %f都是格式替代符
%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-42f 指格式化为小数,其中2指保留2位小数。
eg:
printf "%d %s\n" 1 "abc"
printf %s abcdef
printf %s abc def
printf "%s %s %s\n" a b c d e f g h i j
等等等等
希望大家了解一下
(已尝试mac自带的文本编辑器,脚本编辑器无法编写sh文件)
运行后出现vim主界面,代表mac有vim,并且成功进入了vim
想要运行py文件,直接使用绝对路径即可(此路径可以通过直接拖进终端即可获得,或者使用快捷键Option+Command+C 复制文件途径。)
格式: /可执行文件所在目录/可执行文件
到这里简单可以运行regressionpy文件的shell脚本写好了。
解决办法:修改rtsh文件权限,命令为:
解决办法:同问题一
查了资料问题是'(',')'要使用转义,才可以识别即'(',')'。所以在最开始打开regressionpy文件把所有的括号都加了一遍,这种方法不会再出现括号的错误,但是这并不是一个合理的解决办法,这样太麻烦了,而且编写时是不会这样处理的,所以在看了另一个别人的脚本时,发现在py脚本的头部,即第一行加了一句话
这时使用未做过括号处理的py文件,也不会报错了!
可参考: >
shell脚本里$0代表程序名,$1代表命令行传来的第一个位置参数,$2代表代表命令行传来的第二个位置参数,同理类推。
例如
#!/bin/bashecho "程序名:$0"
echo "参数1:$1"
$sh testsh 1111
输出结果为:
程序名: testsh
参数1:1111
以上就是关于如何使用python脚本调用adb shell里面的命令全部的内容,包括:如何使用python脚本调用adb shell里面的命令、python,awk,shell格式化输出内容全解、编写shell脚本运行python文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)