shell编程之符号与变量

62 篇文章 56 订阅
56 篇文章 1 订阅

一、shell特殊字符
1、一般通配符
这里写图片描述

2、模式表达式
这里写图片描述
3、引号
在shell中引号分为三种,单引号、双引号和倒引号。
3.1、双引号
由双引号括起来的字符(除$,倒引号(),和反斜杠(\)外),其余字符均视为普通字符。对这三种字符仍然保持特殊功能。$表示变量替换,倒引号()表示命令替换,反斜杠表示转移字符。
例:i=10;
echo “ i103.2echo i’
输出:echo $i
3.3、倒引号
倒到引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令行,并用他的结果替换整个倒引号部分。
例: echo “pwd
打印当前目录,并显示出来。

4、注释、管道符、后台命令
在shell脚本里面除了第一行以”#!”开头的表示所使用的脚本的绝对路径。其余以”#”开头的表示注释。
管道线是以”|”隔开的若干命令所组成的序列。一个管道线中可以包含多条命令。
在可执行文件名的后面加上”&”表示在后台运行命令。

5、命令执行操作符。
可以使用逻辑与”&&”把两个命令联系到一起。
例:命令1&&命令2
在命令1执行成功的前提下才执行命令2.

可以使用逻辑或”||”把两个命令联系到一起。
例:命令1||命令2
在命令1执行失败的情况下才去执行命令2.

6、成组命令
以{}括起来的全部命令可以视为语法上的一条命令,出现在管道符的一边。
例:
这里写图片描述
注意:左括弧”{“后面要有一个空格,右括弧”}”前面要有一个分号”;”。

成组命令也可以用”()”括起来。
例:
这里写图片描述
如果用”()”括起来组成命令时,左括号”(“后不必有空格,右括号”)”前也不必有分号”;”。

“{}”和”()”的区别就是,”{}”在本shell内执行命令表,而”()”是创建一个子进程后让子进程去执行命令表。

二、shell变量
1、shell变量
shell中的变量类型都是弱类型,可以不用声明直接就使用,shell会将所有的变量都解释成字符串。变量的命名方法和C语言是相同的。
2、变量赋值
变量赋值的一般形式是:变量名=字符串。注意等号两边一定不能有空格,不然会被shell解释成命令。
3、引用变量值
在变量名前面加一个 shelli=10echo i
4、命令替换
在shell中有两种命令替换的方式,分别是倒引号”“”和$(),shell会将他们括起来的字符串解释成命令。
例:

5、数组
shell中的数组都是一维数组,下标从0开始,下标可以是整数或算术表达式其值应该大于0。
用户可以用赋值语句给数组进行赋值:
例:
这里写图片描述
还可以使用圆括号()进行组合赋值。
这里写图片描述
读取元素值的形式一般是:${数组名[下标]}。若没有给出数组下标,则数组名表示下标为0的数组元素,如nums就等价于nums[0]。而使用*或@作为下标的时候,则表示数组的所有元素。
例:
这里写图片描述
他们的区别就是 nums[] {nums[@]}会将每个元素解释成一个单独的字符串。
这里写图片描述

6、read命令可以从键盘上读取数据,然后赋给指定变量。
read命令的一般格式是:read 变量1 变量2 …
例:
这里写图片描述
如果read后面的变量个数大于输入的参数,则后面的变量的值是空:
这里写图片描述
如果read后面的变量个数小于输入的参数,则多余的参数都会赋给最后一个变量:
这里写图片描述

7、预先定义的特殊变量

7.1$#:表示命令行上参数的个数,但不包括shell脚本名本身。
7.2$?:表示上一条命令执行之后的返回值。如果成功的话,则就是0,失败的话非07.3$$:表示当前进程的进程号。
7.4$!:表示上一个后台命令对应的进程号。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值