shell与if判断详解

一、变量===》人与内存沟通的中间件

变量分类

系统环境变量

1、本地变量:用户私有变量,只有用户可以使用,保存在家目录下的.bash_profire、.bashrc文件中

2、全局变量:所有用户都可以使用,存放在/etc/profire 、 /etc/bashrc

注:定义全局变量前要加export

用户自定义变量

3、用户自定义变量: 用户自定义的变量,比如脚本中的变量。

变量格式:变量名=值

命名规则:

只能用英文字母、数字、下划线。

变量名不能以数字开头,不能有空格、不能使用标点符号。

不能使用bash里的关键字

4、取消自定义变量:unset 格式:unset 变量名

注:写在配置文件里的变量用unset是临时取消

 

5、定义永久变量:把变量写到配置文件中。

本地变量:保存在家目录下的.bash_profire、.bashrc文件中

全局变量:存放在/etc/profire 、 /etc/bashrc 注:变量前加export

注:写到配置文件的变量要重新加载才能生效

本地变量:执行source ~/.bash_profire 或 . ~/.bash_profire

全局变量:执行source /etc/profire 或 . /etc/profire

6、读取变量内容

读取变量内容符:$ 格式:$变量名。

 

二、数组:一个变量存多个数值

1)基本数组:

1、数组可以让用户赋予多个值,需要读取数据时只需要通过索引调用就可以方便读出啦

2、数组语法:与变量类似

数组名称=(元素1 元素2 元素3 ...)

3、数组的读出:

${数组名称[索引]}

索引默认是元素在数组中的排队编号,默认第一个从0开始

4、数组的赋值

方法1:一次赋一个值

array0[0]='tom'

array0[1]='jarry'

array0[2]='natasha'

方法2: 一次赋多个值

# array2=(tom jack alice)

# array3=(`cat /etc/passwd`) 希望是将该文件中的每一个行作为一个元素赋值给数组array3

# array4=(`ls /var/ftp/Shell/for*`)

# array5=(tom jack alice "bash shell")

 

5、查看系统声明过的数组

#declare -a

 

6、访问查看自定义数组

例:数组array1

# echo ${array1[0]} 访问数组中的第一个元素

# echo ${array1[@]} 访问数组中所有元素 等同于 echo ${array1[*]}

# echo ${#array1[@]} 统计数组元素的个数

# echo ${!array2[@]} 获取数组元素的索引

# echo ${array1[@]:1} 从数组下标1开始

# echo ${array1[@]:1:2} 从数组下标1开始,访问两个元素

 

2)关联数组:可以允许用户自定义数组索引,使用更加方便

1、首先声明一个关联数组

格式:declare -A 数组名

查看:declare -A

2、关联数组赋值:

方法一: 一次赋一个值

数组名[索引]=变量值

# ass_array1[index1]=pear

# ass_array1[index2]=apple

# ass_array1[index3]=orange

# ass_array1[index4]=peach

方法二: 一次赋多个值

# ass_array2=([index1]=tom [index2]=jack [index3]=alice [index4]='bash shell')

 

3、访问数组元素

# echo ${ass_array2[index2]} 访问数组中的第二个元数

# echo ${ass_array2[@]} 访问数组中所有元数 等同于 echo ${array1[*]}

# echo ${#ass_array2[@]} 获得数组元数的个数

# echo ${!ass_array2[@]} 获得数组元数的索引

 

三、shell中的五大运算

1、数学整数比较运算

运算符解释 -eq 等于 -gt 大于 -lt 小于 -ge 大于或等于 -le 小于或等于 -ne 不等于

 

2、字符串比较运算

运算符解释,注意字符串一定别忘了使用引号引起来 == 等于 != 不等于 -n 检查字符串的长度是否大于0 -z 检查字符串的长度是否为0

3、赋值运算

= 赋值运算符 例:a=8 b="liu"

注意:与字符串比较运算的区别

 

 

 

4、文件的比较与检查

-d 检查文件是否存在且为目录 -e 检查文件是否存在 -f 检查文件是否存在且为文件 -r 检查文件是否存在且可读 -s 检查文件是否存在且不为空 -w 检查文件是否存在且可写 -x 检查文件是否存在且可执行

-O 检查文件是否存在并且被当前用户拥有 -G 检查文件是否存在并且默认组为当前用户组 file1 -nt file2 检查file1是否比file2新 file1 -ot file2 检查file1是否比file2旧

 

5、逻辑运算(常用)

逻辑与运算 && 逻辑或运算 || 逻辑非运算 ! 逻辑运算注意事项: 逻辑与 或 运算都需要两个或以上条件,逻辑非运算只能一个条件。 口诀: 逻辑与运算 真真为真 真假为假 假假为假 逻辑或运算 真真为真 真假为真 假假为假 逻辑非运算 非假为真 非真为假

 

四、if判断语句

1)语法一:一种情况判断,单if语句

格式:

if [ condition ]

then

codition

fi

#注:condition(条件)值为true或false

 

 

2)语法二:两种情况判断

if [ condition ]

then

condition

else

condition

fi

 

3)语法三:三种情况判断

1、嵌入式写法

if [ condition ]

then

condition

else

if [ condition ]

then

condition

else

condition

fi

fi

 

2、if-then-elif语句写法

if [ condition ]

then

condition

elif [ condition ]

then

condition

else

condition

fi

 

五、if的高级应用

1、使用双小括号(())可以在表达式中值入数学表达式

例:

if (( 2*4>8 ));then

echo "yes"

else

echo "no"

fi

2、使用双方括号[[]]可以字符串匹配

 

for n in ra rb rc dd

do

if [[ $n == r* ]];then

echo $n

fi

done

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值