首页 > 代码库 > llinux学习基础4之变量及条件测试

llinux学习基础4之变量及条件测试

一 bash的变量类型 

bash变量类型:

环境变量

本地变量(局部变量)

位置变量

特殊变量

bash中的变量分为四种 一 是环境变量 二 是本地变量 三是局部变量,每种变量的作用域不一样。环境变量作用于当前shell 及其子shell 。本地变量 紧作用于当前shell。局部变量紧作用于当前shell中一段代码。

1.1 环境变量的定义 export VALNAME=VALUE 

注意:***命令行执行的脚本程序都是要新建一个进程,其执行过程就是开启子shell,因此环境变量对子进程是有效的。但是系统默认执行的脚本 是不需要开开启子shell的,但是他是需要定义环境变量的!

1.2 本地变量的定义  VALNAME=VALUE 

1.3 局部变量的定义  local VALNAME=VALUE 


1.4位置变量

$1 $2 $3  第一个位置  第二个位置 第三个位置

5特殊变量(系统变量)

$? 表示上一个命令的执行状态返回值

执行成功0

执行错误1-255

其中12127系统已经定义了 其他的用户可以自己定义错误代码



二变量的引用

${} 其中{}可以省略  在不引起变量名称混淆的前提下{}可以省略

例如 ANIMIAL=pig

echo there are some $ANIMINALs  

此时就会引起变量名的混淆,就必须添加{},如果引用了一个没有赋值的变量名 则会显示空

 

NAME=jim

echo my name is $NAME  双引号弱引用可以变量替换(引用)

echomy name is $NAME 单引号强引用不能用于变量替换(引用)

三 系统中变量的查看 

   1查看系统中所有环境变量和本地变量  set 

   2 查看系统中所有环境变量 printenv ,export ,env 

 

 脚本的执行

#!/bin/bash

脚本的第一行必须是指明脚本执行的解释器的路径

脚本编写完成后有两种方式执行脚本

第一种是直接使用 bash 命令的方式执行

bash /tmp/onebash.sh

第二种是给文件执行权限 在输入文件的路径来执行,或者是将文件的路径添加到$PATH的路径中去后,在直接执行文件名来执行!



二 条件测试类型 

1 整数测试 

2字符串测试

3文件测试 

 条件测试的表达式一般的三种形式 1 [空格expression空格]

                                2[[空格expression空格]]

                                3 test expression 

1整数测试 -eq  测试两个整数是否相等,等为真,不等为假

          -ne  测试两个整数是否不等,不等为真,等为假

          -gt  大于

          -ge 大于等于

          -lt 小于

          -le 小于等于 

2字符串测试 

            == 等于 

            != 不等于

            -n  测试字符串是否不为空,不为空为真,空为假

            -z  测试字符串是否为空 空为真 不空为假

3文件测试 实例

1[ -e /etc/inittab ] 测试是否存在

2[ -r /etc/inittab ] 测试当前登录的用户是否具有读权限

3[ -w /etc/inittab ]测试当前登录的用户是否具有写权限

4[ -x /etc/inittab ]测试当前登录的用户具有执行权限

5[ -f /etc/inittab ]测试该文件是否是普通文件

6[ -d /etc/inittab ]测试该文件是否是目录 


命令间的逻辑判断

&& ||

&& 操作是 第一个为真时 第二个一定会执行

           第一个为假时  第二个一定不执行

||  操作时 第一个为假时 第二个一定会执行

          第一个为真是 第二个一定不会执行

注意:&& 或者|| 都是取的命令执行后的返回值进行判断 而不是命令的执行结果

注意 所有变量的名称只能是 字母数字和下划线 为组合且不能以数字开头 不应该与系统中的已有的变量同名

id user1 &> /dev/null && echo the user is exist || useradd user1

如果用户不存在 则添加 并给其密码 否则显示已存在

 

! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd --stdin user2 &> /dev/null  || echo user2 is exist  

2判断一个用户的uid 是否为0 如果是 显示为管理员 否则显示为普通用户

[ `id -u root` -eq 0 ] && echo the current user is admin || echo the current user is common


四算数运算 

shell 中如何进行算术运算

A=3  B=5  

1 let C=$A + $B

2 C=$[$A+$B] 

3 C=$(($A+$B))

4 exper 算数表达式  算数表达式中各操作数和运算符之间要有表达式,且要使用反引号

C=`exper $A + $B `



本文出自 “linux学习点滴” 博客,请务必保留此出处http://2858259639.blog.51cto.com/8111214/1873317

llinux学习基础4之变量及条件测试