shell笔记2-colive
1.shell中取变量的值A。$iB${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:~$
单引号的作用是形成一个所见即所得的字符串,不会进行任何替换变量的结果,但是双引号会替换变量。4.定义环境变量变量的作用范围,仅在各自的shell环境中才有效。export name="colive"或者#name="colive"#export name或者#declare -x name=“colive”一样可以把某一个变量定义为环境变量5.readonly -f *** #定义只读函数 readonly -a #定义只读数组变量anhe@ubuntu:~$ a=2anhe@ubuntu:~$ a=5anhe@ubuntu:~$ a=0anhe@ubuntu:~$ readonly-a aanhe@ubuntu:~$ a=4bash: a: 只读变量6.数组,bash仅支持一维数组欲读取数组值 ${数组名[索引值]}一次读取数组所有值${数组名[@]}读取数组元素的个数${#数组名[@]}或${#数组名
[*]}7.#! /bin/bash与 #! /bin/sh执行script (使用 #!/bin/bash)不调用.bash_profile,.bashrc但会检查BASH_ENV的内容,如果为非空,则执行它指定的启动文件执行script (使用 #!/bin/sh)不调用任何启动文件,没有其他检查环境变量的操作。 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。 ${变量/%样式/}从尾开始删除第一个与样式相符合的。
9. 命令替换DIR=$(ls)echo $DIR的作用等于使用了ls
页:
[1]