1.
在Linux中执行脚本文件时 以 ./执行的 或者普通方式(输入文件名)执行时是启动子shell执行的,所以,一切环境变量设置在推出后失效
因此在脚本中设置$PATH将失效,如果一定要以脚本方式来设置,需要 .+空格+文件名或者 source 脚本文件的形式执行.
2.
Linux中的" " 和 ' ',双引号和单引号的区别是,单引号比双引号要严格,双引号会自动解释$开始的变量,而单引号不会.
3.
Linux中将命令执行的结果作为变量可以使用
$(XXX)或者'XXX`,这里'是键盘左上角Tab上面的引号
4.
从字符串头截去字符
${string##XX*} -----从左边开始搜索string变量截去最后一个碰到的XX字符之前的所有内容后剩下的字符
如:
string=asfadfasd
${string##f*}=asd
${string#XX*}--------从左边开始搜索string变量截去第一个碰到的XX字符之前的所有内容后剩下的字符
如:
string=asfadfasd
${string#f*}=adfasd
5.
从字符串尾部截去字符
${string%%XX*} -----从右边开始搜索string变量截去最后一个碰到的XX字符之后的所有内容后剩下的字符
${string%XX*} -----从右边开始搜索string变量截去第一个碰到的XX字符之后的所有内容后剩下的字符
如:
string=asfadfasd
${string%%f*}=as
${string%f*}=asfad
6.
从字符串中去除指定的字符或字符串,替换字符串中指定的字符或字符串
${string/str1/str2} ----将string变量中第一个出现的str1替换为str2
${string//str1/str2}----将string变量中所有出现的str1替换为str2
如:
${linfengfeiye/fe/sc} = linscngfeiye
${linfengfeiye//fe/sc}=linscngsciye
7.
提取字符串
${string:position:length}---提取string变量中从position开始的length个字符(注意下标从0开始)
${string:position}--提取string变量中从position开始到末尾的字符
8.
eval关键字使用:取变量的值所对应的变量值
已知:aaa1=test,A=aaa,B=1
取test
TMP=$A$B
eval T="$"$TMP
echo $T
9.
测试变量字符串长度是否为0(是否为空)
if [ -z $var ] 或者 if [ ! -n $var ]
如:
var=""
if [ -z $var ]
then
echo 1
else
echo 2
fi
得到 1,为空
10.
文件测试选项 (下面都是对应了取真值的例子)
if [ -d $file ] --存在并且是目录
if [ -x $file ] --存在并且可执行
if [ -e $file ] 或者 if [-a $file] --存在
if [ -r $file ] --存在并且可读
if [ -w $file ] --存在并且可写