Shell编程之---变量、比较、测试的使用总结

一、变量

环境变量、位置变量、预定义变量

1、环境变量

env   #查看环境变量

2、位置变量

vi location.sh

#!/bin/bash

SUM=`expr $1 + $2`

echo "$1 + $2 = $SUM"

./location 12 34   #则12为第一个位置变了$1,32为第二个位置变了$2。location为预定义变量

3、预定义变量

$#   #表示命令行中位置参数的个数

$*   #表示所有位置参数的内容

$?   #表示执行后的返回状态,0为正常

$0   #表示当前执行的脚本或程序名称

vi yu.sh

#!/bin/bash

name=bak-`date +%y%m%d`.tar.gz

tar zcf $name $* & >/dev/null

echo "execute $0 script"

echo "complete $#  object"

echo "content is $*"

=========================================================================================

二、条件测试操作[]

1、文件测试

-d   #判断是否为directory         [ -d /etc ] && echo "This is a directory"

-e #判断是否exist      
    [ -e /var/log/messages ] && echo "exist"

-f   #判断是否为file          [ -f /etc/passwd ] && echo "This is a file"

-r   #判断是否有read  
            [ -r read ] && echo "premission is a read "

-w   #判断是否有write        [ -w write ] && echo "premission is a write"

-x   #判断是否有execute  
    [ -x execute ] && echp "premission is a execute"

-l   #判断是否为link

-b   #判断是否为black       [ -b /dev/sr0 ] && echo "This is a block"

-c   #判断是否为chatset  
    [ -c /dev/vcsa ] && echo "This is a charset"

2、整数值比较

-eq  
#1等于2

-ne  
#1不等于2

-gt  
#1大于2

-lt    
#1小于2

-ge  
#1大于或等于2

-le  
#1小于或等于2

user=`who | wc -l`   #$user为3

[ $user -lt 4 ] && echo yes

3、字符串比较

=   #第一个字符串等于第二个字符串

!=  
#第一个字符串不等于第二个字符串

-z   
#检查字符串是否为空,对于未定义或赋予空值的变量视为空串

[ $LANG = en_US.UTF-8 ] && echo yes

4、逻辑测试

&&  
#"而且",当前面和后面两个条件都成立时,整个测试命令的返回值才为0

||       
#"逻辑或",只要前面和后面两个条件中有一个成立时,整个测试命令的返回值即为0

!   #"逻辑否",只有当指定的条件不成立时,整个测试命令的返回值才为0

[ $LANG != zh_CN.UTF-8 ] && [ $user != 100 ] && echo yes    ##$user=3

[ $LANG != zh_CN.UTF-8 ] || [ $user != 3 ] && echo yes

时间: 2024-10-21 23:13:59

Shell编程之---变量、比较、测试的使用总结的相关文章

Shell编程 之 变量设置时的不同模式

未命名 #!/bin/bash#======================================================#文件:var_test.sh#作者:daojoo, [email protected]#作用:测试变量设置时的不同模式#版本:1.0#日期:2012年03月09日 星期五 10时41分39秒#======================================================   #---------------变量设置时的不同模式

第二章 Shell编程之变量

Shell编程之变量 一 Bash变量与变量分类 Bash是Linux中的标准Shell,因此经常称Bash为Shell. 1. 变量命名规则 变量名可以由字母.数字.下划线组成,但必须以字母与下划线开头: 变量名的长度不能超过255个字符: 变量名在有效范围必须唯一: 在Bash中,变量的默认类型都字符串型: 2. 变量按照存储类型分类 默认类型是字符串型. 字符串型,赋值时单双引号皆可: 整形: 浮点型: 日期型: 二 用户自定义变量 变量名与变量值都是用户自定义的,就是说可以由用户控制修改

Shell编程之变量(详解)

一.什么是变量 在我们上学时,我们就接触数据方程式:例如:已知x=1 y=x+1 那么y等于多少,我们毫不犹豫的会算出来2,但是在shell中x就是变量名,那么对应的1就是变量值,在这里的等于号,在shell中称为赋值!x=1      x(变量名)   =(赋值)    1(变量值) 例如:以下在centos7中展示 [[email protected] ~]# name="yankerp" <--定义变量-变量名为name,对应的变量值名字叫做yankerp [[email 

shell编程之变量详解

bash中的变量的种类 1.本地变量 : 生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效 变量赋值: name='value' 使用引用value: (1) 直接写字符 name="root" (2)变量引用 name="$USER" (3)命令引用 name=`command`,name=$() 变量引用: ${name},$name 显示已定义的所有变量: set 删除变量: unset nam

Shell编程——位置参数变量

1. (1)创建Shell脚本: (2)赋予执行权限: (3)执行Shell脚本: (4)对脚本赋值后执行脚本: $n:n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数用大括号包含,例如:${123}. 2.加法示例 (1)编写脚本: (2)赋予执行权限: (3)测试: 3.$*.[email protected].$#的用法: $#代表命令行中参数的个数. 4.$*与[email protected]的区别: $*:这个变量代表命令行中的所有参数,把命令行中的参数看做一个

shell编程之变量

变量: 变量由字母.数字._ 组成,不能以数字开头 长度不能超过255个字符 在bash中,变量的默认类型是字符串类型 变量分类: 1.用户自定义变量:只在当前shell生效,是局部变量 定义方法: 变量名=变量值 #等号两边没有空格 调用方法: $变量名 变量查看: set命令查看所有变量 选项:  -u #如果设定此选项,调用未声明变量是时会报错(默认无提示) 删除变量: unset 变量名 变量叠加: x=${x}test 或 x="$x"test 2.环境变量:这种变量中主要保

shell编程中变量的运算 (shell 06)

主要包括以下3中 字符串操作数学运算浮点运算 一.字符串操作 字符串的连接 连接字2个字符串不需要任何连接符,挨着写即可 长度获取 expr length "hello" expr length "$str" 变量名必须放在双引号里,否者语法错误 查找字符串中字符的位置 expr index "$str" CHARS 第一个是从1 开始的,查找不到返回 0 ,返回匹配到的第一个字符的位置 [[email protected] ~]# echo $

Shell编程-环境变量配置文件

1.source命令 修改配置文件后,必须注销重新登陆才能生效,使用source命令可以不用重新登陆 source  配置文件 . 配置文件 环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量. 系统登入会加载的配置文件,放在/etc下会对: /etc/profile /etc/profile.d/*.sh ~/.bashrc ~/.bash_profile /etc/bashrc 2.环境变量配置文件的功能 正常加载: su切换用户 /etc/profile的作用: USER变量

shell编程之变量赋值

1.变量赋值: name=lbg 等号前后不能有空格 name="Lebron James" 变量值中有空格要用双引号 echo ${name} 用${}更保险 shopt -s -o nounset 设置"先声明再使用" 2.取消变量: unset 释放变量和函数的内存 3.位置参数: ${n}:输入的第n个参数($0表示脚本名字) $#:输入参数的数量 [email protected]:输入的所有参数 $!:输入的最后一个参数 $?:上一个命令的返回值(用于在