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

未命名

#!/bin/bash
#======================================================
#文件:var_test.sh
#作者:daojoo, [email protected]
#作用:测试变量设置时的不同模式
#版本:1.0
#日期:2012年03月09日
星期五 10时41分39秒
#======================================================
 
 
 
#---------------变量设置时的不同模式--------------------
#var-name=value       
设置实际值到var-name
#var-name+value       
如果设置了var-name,则用value代替其值
#var-name:-value   
如果未设置var-name,则用value代替其值
#var-name:=value   
如果未设置var-name,则设置其值为value
#var-name?value       
如果未设置var-name,显示系统错误信息
#var-name:?value   
如果未设置var-name,显示用户错误信息
#---------------------------------------------------
 
 
#var=value    设置了
#var=       
未设置
#var=""       
未设置
 
 
#---------------------------------------------------
#var-name=value       
设置实际值到var-name
echo "\${var1=value1} : ${var1=value1}"
echo
"\${var1} : ${var1}"
#输出:
#${var1=value1} :
value1
#${var1} : value1
#---------------------------------------------------
 
 
#---------------------------------------------------
#var-name+value       
如果设置了var-name,则用value代替其值
#设置了,则代替,代替的是${var2+value2new}的值,而不是变量var2的值
var2=value2
echo
"\${var2+value2new} :
${var2+value2new}"
echo
"\${var2} :
${var2}"        #注意是代替,而不是给var2赋值,所以var2仍然是空值
#输出:
#${var2+value2new} :
value2new
#${var2} :
value2
 
#未设置,则不代替
echo "\${var22+value22new} :
${var22+value22new}"
echo
"\${var22} : ${var22}"
#输出:
#${var22+value22new} :
#${var22} :
#---------------------------------------------------
value2new
 
#---------------------------------------------------
#var-name:-value   
如果未设置var-name,则用value代替其值
#未设置,则代替,代替的是${var3:-value3new}的值,而不是变量var3的值
echo "\${var3:-value3new} : ${var3:-value3new}"
echo "\${var3} :
${var3}"        #注意是代替,而不是给var3赋值,所以var3仍然是空值
#输出:
#${var3:-value3new} :
value3new
#${var3}
:
 
#设置了,则不代替
var33=value33
echo "\${var33:-value33new} :
${var33:-value33new}"
echo
"\${var33} : ${var33}"
#输出:
#${var33:-value33new} : value33
#${var33}
: value33
#---------------------------------------------------
 
 
#---------------------------------------------------
#var-name:=value   
如果未设置var-name,则设置其值为value
#如果未设置,则为变量赋值
echo "\${var4:=value4new} : ${var4:=value4new}"
echo "\${var4} :
${var4}"        #var4:=value4new相当于为var4赋值,此时变量var4的值已经为value4new
#输出:
#${var4:=value4new} :
value4new
#${var4} :
value4new
 
#如果设置了,则不再赋值,而是用其原来的值
var44=value44
echo "\${var44:=value44new} :
${var44:=value44new}"
echo
"\${var44} : ${var44}"
#输出:
#${var44:=value44new} : value44
#${var44}
: value44
#---------------------------------------------------
 
 
#---------------------------------------------------
#var-name?value       
如果未设置var-name,显示系统错误信息
#var-name:?value   
如果未设置var-name,显示用户错误信息
#未设置,则报错
#echo
"\${var5?value5new} : ${var5?value5new}"   
#系统错误信息
#输出:./bashsupport.sh: line 97:
var5: value5new
#echo "\${var6:?value6new}
: ${var6:?value6new}"   
#用户错误信息,注释掉上面一条语句,才能执行到此
#输出:./bashsupport.sh: line 99: var6:
value6new
 
#设置了,则输出变量的值
var55=var55
echo
"\${var55?value55new} :
${var55?value55new}"
#输出:${var55?value55new} : var55
var66=var66
echo
"\${var66?value66new} :
${var66?value66new}"
#输出:${var66?value66new} : var66
#---------------------------------------------------

来自为知笔记(Wiz)

Shell编程 之 变量设置时的不同模式,码迷,mamicode.com

时间: 2024-12-13 08:16:05

Shell编程 之 变量设置时的不同模式的相关文章

第二章 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编程中变量的运算 (shell 06)

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

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编程之变量

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

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

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

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编程之变量赋值

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

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为正