shell中变量赋值的几种方式 + - = ?
2013-07-31 15:10
162 查看
- 原值没设置赋值
var=${str-expr}
str 没有设值
unset str var=${str-abc}
echo ${var} ${str}
abc 空值
str 设值
str=old_value var=${str-new_value}
echo ${var} ${str}
old_value old_value
str 设值为 空字符串 ""
str="" var=${str-newValue}
echo ${var} ${str}
空字符串 空字符串
var=${str:-expr}
str 没有设值
unset str var=${str:-abc}
echo ${var} ${str}
abc 空值
str 设值
str=old_value; var=${str:-new_value}
echo ${var} ${str}
old_value old_value
str 设值为空串
str=""; var=${str:-new_value}
echo ${var} ${str}
new_value ""
总结: str 的值始终不会改变。
var 的值 str值存在则使用自己,否则使用赋给的值
带上 : 表示加一个条件, 原值必须有效
________________________________________________________
+ 原值设值了,就赋值
var=${str+expr}
不设值
unset str; var=${str+new};
echo ${var} ${str}
空值 空值
设非空值
str=old; var=${str+new}
echo ${var} ${str}
new old
设空值
str=""; var=${str+new};
echo ${var} ${str};
new 空串
推断 var=${str:+expr};
不设值
unset str; var=${str:+new};
echo ${var} ${str}
空值 空值
设非空值
str=old; var=${str:+new}
echo ${var} ${str}
new old
设空值
str=""; var=${str:+new};
echo ${var} ${str};
空串 空串
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
= 和 - 类似 没设置值时,才用新值; 但= 会同时修改str 变量的值
var=${str=expr}
不设值
unset str; var=${str=new};
echo ${var} ${str}
new new
设非空值
str=old; var=${str=new}
echo ${var} ${str}
old old
设空值
str=""; var=${str=new};
echo ${var} ${str};
空串 空串
:
不设值
unset str; var=${str:=new};
echo ${var} ${str}
new new
设非空值
str=old; var=${str:=new}
echo ${var} ${str}
old old
设空值
str=""; var=${str:=new};
echo ${var} ${str};
new new
_____________________________________________
?
没设置
unset str; var=${str?"is unvalid"};
-bash: str: is unvalid
echo ${var} ${str};
null null
设非空值
str=old; var=${str?new_value};
echo ${str} ${var}
old old
设空串
str=""; var=${str?new};
echo ${str} ${var}
空串 空串
其实这个? 主要是用来 当str 没有定义时发出警告信息的,没赋值功能。
var=${str-expr}
str 没有设值
unset str var=${str-abc}
echo ${var} ${str}
abc 空值
str 设值
str=old_value var=${str-new_value}
echo ${var} ${str}
old_value old_value
str 设值为 空字符串 ""
str="" var=${str-newValue}
echo ${var} ${str}
空字符串 空字符串
var=${str:-expr}
str 没有设值
unset str var=${str:-abc}
echo ${var} ${str}
abc 空值
str 设值
str=old_value; var=${str:-new_value}
echo ${var} ${str}
old_value old_value
str 设值为空串
str=""; var=${str:-new_value}
echo ${var} ${str}
new_value ""
总结: str 的值始终不会改变。
var 的值 str值存在则使用自己,否则使用赋给的值
带上 : 表示加一个条件, 原值必须有效
________________________________________________________
+ 原值设值了,就赋值
var=${str+expr}
不设值
unset str; var=${str+new};
echo ${var} ${str}
空值 空值
设非空值
str=old; var=${str+new}
echo ${var} ${str}
new old
设空值
str=""; var=${str+new};
echo ${var} ${str};
new 空串
推断 var=${str:+expr};
不设值
unset str; var=${str:+new};
echo ${var} ${str}
空值 空值
设非空值
str=old; var=${str:+new}
echo ${var} ${str}
new old
设空值
str=""; var=${str:+new};
echo ${var} ${str};
空串 空串
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
= 和 - 类似 没设置值时,才用新值; 但= 会同时修改str 变量的值
var=${str=expr}
不设值
unset str; var=${str=new};
echo ${var} ${str}
new new
设非空值
str=old; var=${str=new}
echo ${var} ${str}
old old
设空值
str=""; var=${str=new};
echo ${var} ${str};
空串 空串
:
不设值
unset str; var=${str:=new};
echo ${var} ${str}
new new
设非空值
str=old; var=${str:=new}
echo ${var} ${str}
old old
设空值
str=""; var=${str:=new};
echo ${var} ${str};
new new
_____________________________________________
?
没设置
unset str; var=${str?"is unvalid"};
-bash: str: is unvalid
echo ${var} ${str};
null null
设非空值
str=old; var=${str?new_value};
echo ${str} ${var}
old old
设空串
str=""; var=${str?new};
echo ${str} ${var}
空串 空串
其实这个? 主要是用来 当str 没有定义时发出警告信息的,没赋值功能。
相关文章推荐
- shell变量自增的几种方式
- shell中的几种少见的变量继承(传递)方式
- shell脚本的作用,shell脚本变量的定义和三种赋值方式【shell脚本的学习笔记一】
- 通过脚本的方式杀tomcat进程(shell脚本),shell中将一个文件的内容读出赋值给一个变量
- 几种shell里的小括号,大括号结构和有括号的变量,命令的用法
- linux中的for、while循环输出中赋值变量及shell中循环获取脚本参数
- shell读取一个文件内容到变量并逐一赋值
- 透析Java本质-交换变量的几种方式
- Shell获取标准错误并赋值给变量
- js定时的几种方式及插件变量公用(直接使用jsp中js变量)
- hql语句为变量赋值的两种方式
- JS几种变量交换方式以及性能分析对比
- shell脚本从文件中按行读取数据,并且赋值到数组中的几种方法
- [置顶] shell变量赋值-linux
- 几种shell里的小括号,大括号结构和有括号的变量,命令的用法
- 两个变量交换位置的几种方式
- python和shell变量互相传递的几种方法
- Shell基础教程,什么是Shell?Shell脚本的执行方式,Shell中的变量,Shell中的特殊变量
- php 给对象私有及受保护的成员变量赋值的几种方法
- 在shell中求长度的几种常见方式