随笔分类 - shell
摘要:1、什么是 expect expect 是一个用来实现自动交互功能的软件套件,是基于 TCL 的脚本编程工具语言,方便学习,功能强大。 2、为什么要用 expect 2.1 案例 [root@CentOS8 ~]# ssh -p22 root@10.110.81.223 uptime The aut
阅读全文
摘要:1、常用变量的数据计算命令 (1)命令 (())、let、expr、bc、$[]、awk、declare (2)说明 bc:能计算浮点数(小数),其它只能计算整数。最常用的是(()),效率也最高。 2、双括号(())命令 运算操作符与运算命令 意义 ((i=i+1)) 此种方法为运算后赋值法,不能用
阅读全文
摘要:(1)脚本开头(第一行) 规范的shell脚本的第一行会指出由哪个程序(解释器)来执行脚本中的内容,在Linux bash编程中一般为: #!/bin/bash或#!/bin/sh 其中开头的"#!"称为幻数,在执行bash脚本的时候,内核会根据"#!"后的解释器来确定由哪个程序来解释脚本中的内容。
阅读全文
摘要:Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制
阅读全文
摘要:上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。 bash bash是Linux标准默认的shel
阅读全文
摘要:打开文本编辑器,这里推荐使用vim编辑器,可以事先做一个别名: [root@CentOS8 log]# echo "alias vi='vim'" >> /etc/profile [root@CentOS8 log]# tail -1 /etc/profile alias vi='vim' [roo
阅读全文
摘要:变量分类 变量可分为2类:环境变量(全局变量)和局部变量(本地变量)。 环境变量可以在创建他们的shell及其派生出来的任意子进程shell中使用。局部变量只能在创建他们的shell函数或脚本中使用。 命名规范: 一般是字母、数字、下划线组成,必须以字母开头。 语义要清晰,能够正确表达变量内容的含义
阅读全文
摘要:如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换。
阅读全文
摘要:条件测试表达式 1、条件测试语法 条件测试语法 说明 test<测试表达式> 这是利用test命令进行条件测试表达式的方法,test命令和“<测试表达式”之间至少一个空格。 [ 测试表达式 ] 这是通过[](单括号)进行条件测试表达式的方法,和test命令的用法相同,推荐使用此方法,[]边界和内容之
阅读全文
摘要:以“#”开头的行就是注释,会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。只能像这样: # # 这是一个自动打ipa的脚本,基于webfrogs的ipa-build书写: # https://github.com/webfrogs/xcode_shell/blob/master/ipa-b
阅读全文
摘要:字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量
阅读全文
摘要:Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。 定义数组 在Shell中,用括号来表示数组,
阅读全文
摘要:echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式: echo arg 可以使用echo实现更复杂的输出格式控制。 显示转义字符 echo "\"It is a test\"" 结果将是: "It is a test" 双引号也可以省略。 显示变量 name="OK" ec
阅读全文
摘要:printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。如同 echo 命令,printf 命令也可以输出简单的字符串: $printf "Hello
阅读全文
摘要:if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句: if ... fi 语句; if ... else ... fi 语句; if ... elif ... else ... fi 语句。 1) if ... else 语句 if ...
阅读全文
摘要:case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: case 值 in 模式1) command1 command2 command3 ;; 模式2)
阅读全文
摘要:与其他编程语言类似,Shell支持for循环。for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。in 列表是可选的,如
阅读全文
摘要:while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为: while command do Statement(s) to be executed if command is true done 命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。以下是
阅读全文
摘要:until 循环执行一系列命令直至条件为 true 时停止。until 循环与 while 循环在处理方式上刚好相反。一般while循环优于until循环,但在某些时候,也只是极少数情况下,until 循环更加有用。until 循环格式为: until command do Statement(s)
阅读全文
摘要:在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环。 break命令 break命令允许跳出所有循环(终止执行后面的所有循环)。下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到sh
阅读全文

浙公网安备 33010602011771号