linux shell 学习笔记(三)--shell编程基础

来源:互联网 发布:eclipse的jar关联源码 编辑:程序博客网 时间:2024/05/09 09:35

1.   #!(shebang) shell脚本文件第一行的前两个字符。#!后必须是解释程序的绝对路径。

2.#注释标识符。

3.在运行一个shell脚本之前要确保shell脚本文件具有可执行权限,否则会“permission denied”。

例:chmod u+x /.a.sh

4.bash中的参数扩展

字符“$”会引导参数扩展。

基本的参数扩展:

$参数

${参数}   注意:参数名是大小写敏感的。



间接参数扩展:

${!参数}



大小写修改

${参数^}

${参数^^}

${参数,}

${参数,,}

${参数~}

${参数~~}

操作符“^”将参数值得第一个字符改为大写,操作符“,”将参数值的第一个字符改为小写。

当使用双重模式(^^或,,)时,所有的字符都被转换。





变量名扩展

${!前缀*}

${!前缀@}



字符串移除:

${参数#模式}//开头匹配

${参数##模式}//开头匹配

${参数%模式}//末尾匹配

${参数%%模式}//末尾匹配

操作符“#”和“%”表示将移除匹配指定模式的最短文本,而操作“##”和“%%”表示移除匹配指定模式的最长文本。


字符串搜索与替换:

${参数/模式/字符串}

${参数//模式/字符串}

${参数/模式}

${参数//模式}

 操作符“/”表示只替换一个匹配的字符串,而操作符“//”表示替换所有匹配的字符串。,如果没有指定替换字符串STRING,那么匹配的内容将被替换为空字符串,即被删除。


求字符串长度:

${#参数}


字符串扩展

${参数:OFFSET}

${参数:OFFSET:LENGTH}



使用默认值

${参数:-WORD}      如果参数为未定义,或为null时,这种模式会扩展WORD,否则将扩展参数。

${参数-WORD}          只有参数未定义是,才会使用WORD。


指定默认值:

${参数:=WORD}

${参数=WORD}

这种模式与使用默认值的模式类似,但其区别在于此种模式不仅扩展了WORD,还将WORD赋值给参数,作为参数的值。



使用替代值:

${参数:+WORD}

${参数+WORD}

如果参数是未定义的,或者其值为空时,这种模式将不扩展任何内容。

如果参数是定义的,且其值不为空,这种模式将扩展WORD,而不是扩展参数的值。














0 0