1.shell中取变量的值
A。$i B${i}
区别:如果变量的名称后跟其他英文单词,字母或者底线,需用{}隔开$与变量名称。eg:
anhe@ubuntu:~$ name='colive'
anhe@ubuntu:~$ echo $name
colive
anhe@ubuntu:~$ echo ${name}
colive
anhe@ubuntu:~$ echo $name_anhe #空白,因为name_anhe没有赋值
anhe@ubuntu:~$ echo ${name}_anhe #可以
colive_anhe
2.取消和清空变量
使用unset,unset -v #取消的是变量 unset -f #取消的是函数
3.anhe@ubuntu:~$ name=anhe
anhe@ubuntu:~$ echo 'my name is $name'
my name is $name
anhe@ubuntu:~$ echo "my name is $name"
my name is anhe
anhe@ubuntu:~$
8.变量扩展:取字符串切片,字符串长度
A。 ${变量:位置起点} eg:
name="colive_an"
myname=${name:3}
ive_an
B。 ${变量:位置起点:长度}
C。 ${@:1} 由起点开始,取得后面所有的位置参数
D。 ${@:n}由第n个开始,取得后面所有的位置参数
E。 ${@:起点位置:个数} 由起点开始,取得指定个数的位置参数
F。 ${#变量名称} 传回变量值的字符串长度
G。 ${变量#样式}由前面对比,删除最短的/。eg
# filename=/usr/bin/neton
# r=${filename#/*/}
# echo $r
bin/neton
H。 ${变量##样式}由前面对比,删除最长的
# filename=/usr/bin/neton
# r=${filename##/*/}
# echo $r
#neton
I。 ${变量%样式} 由后面对比,删除最短的
J。 ${变量%样式} 从后面对比,删除最长的
K。 ${变量/样式/} 把对比符合的字符串删除一个
# filename=/usr/bin/neton
# r=${filename/bin/}
# echo $r
/usr//neton
L。 ${变量//样式/} 把对比符合的字符串都删除
# filename=/usr/bin/neton
# r=${filename//bin/}
# echo $r
usrbinneton
M。 ${变量名/#模式/} eg:
# filename='thx,this is colive'
# r=${filename/#t/}
# echo $r
hx,this is colive
从头开始,删除第一个与模式相符合的
N。 ${变量/%样式/}从尾开始删除第一个与样式相符合的。