Linux之shell
shell 是一个命令解释器
系统变量 $HOME $PWD $USER $SHELL
自定义变量
1.基本语法
(1)定义变量: 变量=值
(2) 撤销变量: unset 变量
(3)声明静态变量: readonly 变量,注意:不能unset
2.变量定义规则
(1)变量名称可以由字母、数字和下划线组成,但不能以数字开头,环境变量名建议英文大写
(2)等号两侧不能有空格
(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算
(4)变量的值如果有空格,需要使用双引号或单引号括起来
(5)export 变量名 可把变量提升为全局环境变量,可供其他shell程序使用
特殊变量
$n (功能描述: n为数字 ,$0代表脚本名称,$1-$9 代表第一到第九个参数,十以上的参数需要使用大括号包含,如${10} )
$# (功能描述: 获取所有输入参数的个数,常用于循环)
$* (功能描述: 这个变量代表命令行中所有的参数,$* 把所有参数看成一个整体)
$@ (功能描述: 这个变量也代表命令行中所有的参数,不过$@ 把每个参数区别对待)
$? (功能描述: 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;
如果这个变量的值为非0(具体是哪个数字,由命令自己来决定),则证明上一个命令执行不正确了。)
运算符
(1) "$((运算式))" 或 "$[运算式]"
(2) expr + , -, \* , /, % 加,减,乘,除,取余
注意:expr 运算符简要有空格
常用判断条件
if 判断
read
系统函数
自定义函数
示例:
SHELL 工具
cut
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列
sed
awk
sort
shell 子串的花式用法
特殊shell 扩展变量
示例:
[root@centos068 ~]# echo $name [root@centos068 ~]# echo $word [root@centos068 ~]# word=222 [root@centos068 ~]# echo $word 222 [root@centos068 ~]# abc=${name:-word} [root@centos068 ~]# echo $abc word [root@centos068 ~]# echo $name [root@centos068 ~]# abd=${name:=word} [root@centos068 ~]# echo $abd word [root@centos068 ~]# echo $name word [root@centos068 ~]# abf=${name:?word} [root@centos068 ~]# echo $abf word [root@centos068 ~]# echo $name1 [root@centos068 ~]# abj=${name1:?word} -bash: name1: word [root@centos068 ~]# echo $name1 [root@centos068 ~]# echo $name word [root@centos068 ~]# echo $word 222 [root@centos068 ~]# abe=${name1:+word} [root@centos068 ~]# echo $abe [root@centos068 ~]# abh=${name:+word} [root@centos068 ~]# echo $abh word [root@centos068 ~]#
·