最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f_sum(){ return $(($1+$2)); } f_sum 3 5; total=$(f_sum 3 6); echo $total,$?; 注意几个问题: 1.shell是逐行执行,所以要在函数声明之后才可调用,否则会有错误 2.我们要获得函数的返回值只能通过$?来获得,不可以通过变量拿…
函数:一段具有某些特定功能的代码段. 使用函数的严格规定: 1.函数声明 2.函数定义 3.函数调用 函数声明:告知系统编译器该系统的函数名,函数参数,参数类型,参数个数,参数顺序等等,以便函数调用时对其进行校验. 格式:函数返回值类型修饰符  函数名(参数); 一般推荐复制 声明一般放在.h文件中 函数定义: 也叫函数的实现,也就是函数的功能代码 格式: 函数返回值类型修饰符 函数名(参数){ 代码实现.... } 定义一般放在.m文件中 如果定义在了main上边,则可以省略函数声明,如果定义…
(一) strace 命令    用途:打印 STREAMS 跟踪消息. 语法:strace [ mid sid level ] ... 描述:没有参数的 strace 命令将所有的驱动程序和模块中的所有 STREAMS 事件跟踪消息写到它的标准输出中. 这些消息是从 STREAMS 日志驱动程序中获取的.如果提供参数,它们必须是在三元组中.每个三元组表明跟踪消息要从给定的模块或驱动程序.子标识(通常表明次要设备)以及优先级别 等于或小于给定级别的模块或驱动程序中接收.all 标记可由任何成员使…
最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ];then echo "parameter a is equal to parameter b" elif [ $a -le $b ];then echo "parameter a is less than parameter b" elif [ $a -gt $b ];…
函数指针:指向函数的指针变量. 函数名相当于首地址. 函数指针定义:返回值类型  (*函数指针变量名)(参数类型1,参数类型2,....)=初始值 函数指针类型:返回值类型  (*)(参数类型1,参数类型2,....)=初始值 如:int  (*)(int int)  表示返回值是int类型,参数有两个,都为int类型的指针变量类型 void sayHello(){ printf("你好!!! \n"); } void (*p)()=NULL;   //表示返回值为空,无参数的,函数指…
1.chmod 第一种方式 chomd [{ugoa}{+-=}{rwx}] [文件或者目录] u 代表该文件所属用户 g 代表该文件所属用户组 o 代表访客 a 代表所有用户 +-=分别表示增加权限,减少权限或者赋予权限 让所有用户对t2.tmp文件具有写权限: 第二种方式: chmod [mode=421] [文件或者文件夹] 4 表示读权限 2表示写权限 1表示执行权限 比如:让文件所属用户具有所有权限,所属组具有读和执行权限,其他人具有执行权限,那么可以这么设置: 关于rwx的理解: 2…
我们都知道,android的调试打了断点之后运行时要使用debug as->android application 但是这样的运行效率非常低,那么我们有没有快速的方法呢? 当然有. 我们打完断点之后,不使用debug as 而是使用run as,运行之后,打开ddms,如图,选中调试的设备. 然后点击上面的绿色按钮,这个时候再把断点挂上 然后在运行android应用的过程中当运行到断点处就会停下来. 这样调试速度会非常快. 版权声明:本文为博主原创文章,未经博主允许不得转载.若有错误地方,还望批…
由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间. 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦. 1.修改清单文件 2.重新在Java文件中导入R文件 1改完之后系统就会报错,这是因为R文件找不到了,这时要在每个Java文件中重新导入R文件 3.修改Java文件的包名 执行完步骤2之后,这个时候程序已经可以运行了,但是规范起见,我们把程序包名也要修改一下. 修改时点击包,按Ctrl+Alt+R键,重…
从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn.os.popen.popen2.commands. 不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息. subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用.另外subprocess还提供了一些管理标准流(st…
数组:是由一组具有相同数据类型的数据组合而来. 数组定义:元素类型修饰符 数组名[数组个数]={元素1,元素2....};  int arr[ 2 ]={1,2};    //正确 int arr[ 2 ]={1,2,3};     //错误,越界 其中,数组定义时,长度表示可以省略,如果省略,长度直接由元素的个数决定 int arr[ ]={1,2,3};   //该数组长度是3 数组的使用: 访问:数组下标从0开始,范围[0,元素个数-1] 随机数产生:arc4random%(m-n+1)+…