shell笔记-算术运算】的更多相关文章

算术运算在Bash shell环境中,可以利用let.(( ))和[]执行基本的算术操作.而在进行高级操作时,expr和bc这两个工具也会非常有用.let命令可以直接执行基本的算术操作.当使用let时,变量名之前不需要再添加$, [root@server0 ~]# a=5[root@server0 ~]# let a++ #自加操作[root@server0 ~]# echo $a6[root@server0 ~]# b=4[root@server0 ~]# let b-- #自减操作[root…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/505644 ****shell 脚本基础知识**** ##########实验环境是RHEL5.3,内核2.6.18########### 一.基本脚本编译 知识内容: # 构建脚本 # 将命令串联起来 # 存储变量 # 数学计算 # 重定向输出 # 检查代码 1.使用多条命令 shell不像高级语言需要编译后执…
本文是上课笔记总结,涉及细节知识点会在以后文章说明! bash脚本编程: 脚本程序:解释器解释执行: shell: 交互式接口:编程环境: shell: 能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程: 编程环境: 流程控制语句: 顺序执行: 循环执行: 选择执行: 条件测试:真.假 $? 命令的状态结果: 0: 真 1-255: 假 过程式的编程语言的元素:变量.流程.函数.数组 变量:局部变量.本地变量.环境变量.位置参数变量.特殊变量 变量: 数值…
在Bash的算术运算中有以下几种方法:名称                语法                    范例算术扩展            $((算术式))              r=$((1+2*3))使用外部程序expr    expr 算术式              r=`expr 1+2*3`使用$[]             $[算术式]                r=$[1+2]使用内置命令        declare -i 变量=算术式    declar…
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1:使用 expr 外部程式加法 r=`expr 4 + 5`echo $r注意! '4' '+' '5' 这三者之间要有空白r=`expr 4 * 5` #错误乘法 r=`expr 4 \* 5`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2:使用 $(( ))r=$(( 4 + 5 ))echo $r~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3:使用 $[ ]r=$[ 4 + 5…
在java中执行shell有好几种方式:第一种(exec)方式一 public static synchronized void runshell2() {    File superuser = new File("/system/bin/superuser");      if (superuser.exists())    {       // return device to original state       Process process;       try    …
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/525126 知识体系: #创建函数 #使用参数 #共享函数 shell脚本代码可以封装在函数内,而函数可以在脚本任意处使用,由此减少大段代码的重复编写. 1.基本脚本函数 函数是被赋予名称的脚本代码块,可以在代码的任意位置使用.当需要调用代码块的时候,只需引用代码块被赋予的函数名即可. 1.1.创建函数 在bas…
算术运算 默认不支持算数运算.所以需要特定的语法来完成, shell进行算数运算的工具: let declare (())或$(())或$[] bc let: 格式: let var=算术表达式 例如:let num=1+20:echo $num declare: 例如: declare -i var = 数值 declare -i num=1+5: echo $num (())或$()或$[] 格式: ((var=算术表达式)) var=$[算术表达式] var=$((算术表达式)) var=…
shell:俗称操作系统的"外壳",就是命令解释程序.     是用户与Linux内核之间的接口.     是负责与用户交互,分析.执行用户输入的命令,并给出结果或出错提示.     每个用户账号创建时都会指定一个shell.当用户使用该账号注册成功,便会马上执行.     root账号的shell提示符是#号.   shell种类: ash:占用资源最少的shell. bash:默认使用,内部命令一共用40个. ksh:共42条内部命令,与商业版ksh完全兼容. csh:linux较…
local一般用于局部变量声明,多在在函数内部使用.     1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.     2.    Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止.函数定义的变量可以被显示定义成local的,其作用域局限于函数内.但请注意,函数的参数是local的.     3.    如果同名,Shell函数定义的loc…
from:http://www.cnblogs.com/yfanqiu/archive/2012/05/10/2494031.html#undefined shell程序中的操作默认都是字符串操作,在要运行数学运算符的时候可能得到意想不到的答案: var=1var=$var+1echo $var output:1+1 从这个例子中可以看出shell字符串连接的操作,需要注意的是空格. 在shell中可以使用let来指示下面是算术表达式,let表达式内变量不用加$ var=1let "var+=1…
shell只支持整数运算.一般可用let.expr.declare.$[]实现. 更精准的运算建议使用Linux下的bc工具——一款高精度计算语言. 1. let是shell内建的整数运算命令 ## 可完成+ - * / % ** 加减乘除余幂等常规运算符 let a=+ ; echo $a let b=/ ; echo $b let c=%; echo $c let d=a**; echo $d ## 可完成+= -= *= /= %= 等混合运算符x= ;let x-= echo $x y=…
shell 笔记 通配符 没有 '.' [Aa] 表示 A 或者 a ? 表示任意字符 * 表示任意字符串 IFS data='name, sex, rollno, location' oldIFS=$IFS IFS=', ' for i in $data; do echo $i; done 变量 $* 参数被作为一个单词 (这个变量很少被使用) $@ 参数按 IFS 分割 $? 退出参数 $$ 当前 shell 进程的 pid $! 后台运行的最后一个进程的 pid 长度 var='xxxx'…
一.编写第一个shell程序 实例1: [程序] #!/bin/sh echo "hello word !" [运行]…
local一般用于局部变量声明,多在在函数内部使用.    1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.    2.    Shell函数定义的变量默认是global的,其作用域从"函数被调用时执行变量定义的地方"开始,到shell结束或被显示删除处为止.函数定义的变量可以被显示定义成local的,其作用域局限于函数内.但请注意,函数的参数是local的.    3.    如果同名,Shell函数定义的l…
由于工作的需要,越来越多的接触到linux系统.最近看了<Linux与Unix Shell>这本书,安装书的章节整理了一些自己认为比较重要的命令,方便以后查阅. No.001 文件安全与权限 1. umask 决定了新建文件的权限 2. 软链接(符号链接) ln -s source_path target_path No.002 find和xargs 1. find pathname -options [-print -exec -ok]    其中exec参数的命令格式: 'command-…
shell提取文件名: http://blog.csdn.net/u011544778/article/details/50773053 一.使用${} 1.${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容.使用例子及结果如下: 从运行结果可以看到,使用该命令,可以提取出我们需要的文件名file.txt. 若使用时在shell程序文件中,可以使用变量来保存这个结果,再加以利用,如file=${v…
1.查看进程的环境变量 普通:$cat /proc/1642/environ  换行:$cat /proc/1642/environ | tr '\0' '\n' tr的命令格式是tr SET1 SET2,凡是在SET1中的字符,都会被替换为SET2中相应位置上的字符. 2.SHELL脚本赋值与等于判断 赋值:$var=value 相等:$var  = value 在赋值时不要留有空格. 3.从进程名字得知进程ID $ pgrep my_proc  4.当前环境变量 $PATH 记住必须是大写…
------------------------------------------------------------------- --------------------------------------------------------------------------------------- PS :  把命令的 返回的值  赋值给变量   使用 ‘  ’  ,比较常用 PS:打印变量一定要用   echo $A PS:$n是为了传参数的时候  获取参数. PS:只能进行整形运…
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中:   转义字符 含义 \\ 反斜杠 \a 警报,响铃 \b 退格(删除…
前面已经讲到,变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 运行结果 29949   特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. $@ 传递给脚本或函数的所有参数.被双引号("…
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z). 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 变量定义举例: myUrl="http://see.xidian.edu.cn/cp…
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash echo "Hello World !" “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.echo命令用于向窗口输出文本. 运行Shell脚本有两种方法. 作为可执行程序 将上面的代码保存为test.sh,并 cd 到相应目录: chmod +…
https://www.shellscript.sh/variables1.html 变量是一个可操作(读.写)的内存块的名字. 尝试-1 创建一个变量: root@iZwz:~/labs# sh mytest.sh Hello. root@iZwz:~/labs# cat mytest.sh #!/bin/bash MY_MESSAGE="Hello." echo $MY_MESSAGE 赋值号两边不应该有空格!~ 尝试-2 从标准输入读取一行: root@iZwz:~/labs#…
root@iZwz:~/labs# vim myfirst root@iZwz:~/labs# cat myfirst #!/bin/bash clear echo "this is my first script." 上面的代码应该非常“顾名思义”了,试着执行一下这个脚本: root@iZwz:~/labs# sh myfirst this is my first script. 2.#!/bin/bash 是必须的吗? 这个在大多数 Linux 系统下不是问题,因为一般linux用…
变量的数值计算方法大致有双括号 (()), expr,  bc, $[ ] 例子1 注意:2**3表示2的3次方,a++表示先输出a自身的值,然后进行++的运算: --a表示先进行--的运算,然后再输出a自身的值 这例子的意思就是说啊 1. 双括号里可以直接运算并且赋值给变量,简单的运算就用 ((a=1+2**4-4%2))吧,方便啊 2. 也可以是双括号里运算完后,按照平常的方式赋值给变量,就是例子中的b=$((....)),运算复杂了用这一种,比如括号里有变量的时候. 3. 都不用赋值给变量…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/522415 知识体系: #回顾信号功能 #隐藏在背景中 #在没有控制台的情况下运行 #做得更好 #准确无误的运行 #从头开始 前面运行脚本的方式都是在命令行界面运行,实际上还有运行shell脚本的其他方式,以及中断脚本的运行进程,控制脚本的运行时间都可以实现. 1.处理信号 linux下有各种信号,如停止.启动.…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/521455 知识体系: #回顾重定向 #标准输入和输出 #报告错误 #丢弃数据 #创建日志文件 这里主要讲述如何将脚本重定向到linux系统的各个位置. 1.了解输入和输出 我们知道显示脚本输出的方法有两种: *在监视器屏幕上显示 *将输出重定向到文件 下面主要讲述如何使用标准的linux输入和输出体系满足将脚本…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/521448 知识体系: #使用命令行参数 #设置选项 #获取用户输入 有时编写的脚本需要能和运行脚本的人员进行交互,bash shell提供了一些方法来从用户处获取数据,这些方法有如下三种: 1- 命令行参数(添加在命令后的参数) 2- 命令行选项(修改命令行为的单字符串) 3- 直接读取键盘输入 1.命令行参数…
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/513601 三.更多结构化命令 前面已经讲述了检查命令的输出和变量的值来操作shell脚本程序中的流.如下主要说明如何执行重复的过程和命令,使得一组命令循环下去,直到满足特定的条件. 知识内容: # 使用for语句循环 # 使用until语句迭代 # 使用while语句 # 结合循环 # 重定向循环输出 1.fo…