1、read
[root@localhost zhangyf]# read [-pt] 变量名
参数:
p后直接接提示符
t后面接等待的秒数
例一:
[root@localhost ~]$ read atest
this is a test
[root@localhost ~]$ echo $atest
this is a test
例二:
[root@localhost ~]$ read -p "please keyin your name:" -t 30 name
please keyin your name:nancy
[root@localhost ~]$ echo $name
nancy
2.declare/typeset
declare/typeset:声明变量的属性。
[root@linux..]# declare [-aixr] variable
参数:
-a:将后面的variable定义为数组(array)
-i:将后面的variable定义为证书数字(integer)
-x:用法与export一样,将后面的变量变成环境变量。
-r:将一个variable设成只读(readonly),该变量不可更改内容,也不能取消设置。
例1:让变量sum对100+300+50求和
[root@linux..]# declare -i sum=100+300+50
[root@linux..]# echo $sum
3.数组属性array说明
数组设置方式:
[root@linux..]# arr=(0 1 2 3 4) #定义数组
[root@linux..]# echo ${arr[*]} ###输出数组,需要加{},优先级
[root@linux..]# echo ${#arr[*]} #数组统计,在数组前面输入一个#号
[root@linux..]# echo ${!arr[@]} #获取所有元素序号信息
关于数组,此文讲解不错:http://blog.csdn.net/flowingflying/article/details/5171543
附件的变量设置功能
获取两种变量的方法:
[root@linux~]# echo $HOME
[root@linux~]# echo ${HOME}
修改变量
通过加一些字符标志,再使用比较字符串,即可修改变量内容。
例:1:变量内容呈现
[zhangyf@localhost home]$ vbird="/zhangyf/bash/test/test.b.sh"
[zhangyf@localhost home]$ echo $vbird
/zhangyf/bash/test/test.b.sh
例2:
在vbird变量中,从最前面开始比较,若开头为/,则删除两个/直接的所有数据,即/*/
[zhangyf@localhost home]$ echo ${vbird##/*/}
test.b.sh ##删除了/zhangyf/bash/test/
[zhangyf@localhost home]$ echo ${vbird#/*/}
bash/test/test.b.sh ##仅删除了/zhangyf/而已
#变量后面接##,后面字符串取“最长的”那段,如果仅有一个#,表示取最小的那一段。
例3:
如果从后面开始,删除/*?
[zhangyf@localhost home]$ echo ${vbird%%/*/}
/zhangyf/bash/test/test.b.sh ##都没删除
[zhangyf@localhost home]$ echo ${vbird%%/*}
##删除完了
[zhangyf@localhost home]$ echo ${vbird%/*}
/zhangyf/bash/test/ ##仅删除了test.b.sh而已
例4:
将变量中得test替换为TEST
[zhangyf@localhost home]$ echo ${vbird/test/TEST}
/zhangyf/bash/TEST/test.b.sh
[zhangyf@localhost home]$ echo ${vbird//test/TEST}
/zhangyf/bash/TEST/TEST.b.sh
##如果变量后面接/,那么,表示后面是进行“替换”工作,而且仅替换第一个
#如果是//,则表示替换全部字符串
变量设置方式