分类:
2012-01-07 17:31:02
原文地址:Linux shell编程(一)变量与字符串操作 作者:railon
本文转自:http://2614223.blog.51cto.com/2604223/577444
1. #! /bin/bash
shopt -s -o nounset
infomix="50"
echo $infomix
=========================
-s 表示打开选项的意思,-o 表示可用set -o 设定的选项,nounset 表示变量一定要先设定过,才能使用。
2. I=8
J=$I
echo $J
####### J=$I 这一行,$I会替换成8,再把8设定给J,最后显示8.
3. I=8
echo \$I
########$放在变量名称之前,表示要取变量值,但如果要显示$符号,得使用转义符‘\’。
4. 除了使用内置命令echo显示变量的内容外,BASH还提供一个printf命令
printf "格式字符串"字符串或变量值
HI=“hello world”
printf "%s" "$HI"
###########会以字符串的方式(%s之意),显示HI变量值内容,但不换行。
HI=“hello world”
printf "%s\n" "$HI"
#####在格式字符串中加入\n,就有换行的效果。
5.“取消变量”和“清空变量”差异
取消变量的方法:使用unset
unset 变量名称
清空变量的做法:变量名称=
myname="ols3"
myname=
#######把变量重新设一个空值,等号的右边是空的。
6. 变量和引号
在双引号中,可进行以下3个操作:
(1)替换变量
(2)替换命令执行结果
(3)替换算术运算结果
##单引号的作用是形成一个所见即所得得字符串(即写什么,就显示什么),不会进行任何替换变量的操作。
7. 环境变量
变成环境变量的方法可使用export这个命令:
testVAR="hello world"
export testVAR 或者
export testVAR="hello world"
8. IFS
定义字段分割字符。默认值为:空格符,tab字符,换行字符。
#i /bin/bash
CHK="test1 test2 test3 test4"
for i in $CHK
do
echo $i
done
######由于$IFS的内容之一是空格符,所以可把$CHK拆成4个部分(称为字段),分别交给echo $i显示出来。
执行结果:
test1
test2
test3
test4
9. 调整变量的属性
只读变量:使用readonly命令
设定为只读变量:readonly 变量名称
不能修改内容的变量为只读变量。
10. 别名
替指令取一个短而方便的代称。
alias 别名=指令
alias ll='ls -l --color=auto'
取消别名的方法:unalias 别名
11. 数组的用法
A[0]=5
A[1]=10
A[2]=28
这里建立了一个数组叫A,共有3个元素,欲显示或取得某一个元素的值,其语法为:${数组[索引值]}
echo ${A[1]}
建立数组,也可以一次设定每个元素的值,做法如下
B=(23 88 89 66)
echo ${B[2]}
取出数组所有的元素
echo ${B[@]}
结果显示:23 88 89 66
取得数组元素的个数
echo ${#B[@]} 结果是4,表示数组B有4个元素。
取消数组或数组元素
unset B
12. 用Here Document设定变量
Here Document 的基本语法为:
命令 <<标记
。。。。。
。。。。。
标记
用例:
from='from:
to='to:
subject='subject: hello world'
msg='新年快乐'
em='2009.txt'
cat > $em < $from $to $subject $msg HERE 结果存成文件2009.txt文件,其内容如下: from: to: subject: hello world 新年快乐 关闭变量替换的功能 cat << 'HERE' line 1 is good they are jack,marry and john $WOW HERE 对标记HERE加上单引号,即可关闭变量替换。 本文出自 “我的地盘听我的” 博客,请务必保留此出处http://2614223.blog.51cto.com/2604223/577444