主要内容介绍
shell变量、注释、传参、基本运算、流程控制、函数。笔者采用centos系统默认使用的shell:BASH,进行学习介绍。
BASH特点
1.记录历史命令。保存在home目录的.bash_history文件中,只有退出当前shell时,历史命名才保存在.bash_history文件中。正常使用时,输入history,可以显示查看最近使用过的命令。
2.指令和文件名补全。使用tab键补全
3.别名(alias)。使用目的,把一个特别长经常使用指令用别名的方式简化代替。如果不想用,unalias接触别名功能。语法,alias[命名别名]=[‘具体的命令’]。
(了解,没具体使用。如图,系统使用的别名有)
4.通配符。用*匹配零个字符或多个字符,?匹配一个字符。
5.输入输出重定向。
6.管道符
7.作业控制。当一个程序运行,暂停(Ctrl+Z),fg命令恢复,bg命名转到后台运行;终止程序运行(Ctrl+C)。
脚本定义
创建文件xx.sh,文件内容如图
解释:
1.“#!”脚本约定标记,告诉系统这个脚本用什么解释器来执行,使用哪种Shell。
2.“echo”,向窗口输出文本
要执行该脚本内容需要给该文件(xx.sh)授权执行权限
命令:chmod +x xx.sh
授权后执行脚本生效
命名:./xx.sh
效果如图:
Shell变量
变量的使用和定义。
a)变量名和等号间不能用等号,
b)首字母必须为字母(a-z,A-Z)
c)中间不能有空格,可以是下划线
d)不能使用标点符号
c)不能使用关键字
1.定义变量
如变量myString:
输出效果:
2.删除变量
unset myString 删除变量名myString
如图执行输出
输出效果:
3.只读变量
readonly 变量名
如定义了变量myString,设置只读属性:
依次执行输出效果:
4.变量类型
脚本运行时会有3种变量
a)局部变量。变量在脚本或命令中定义,仅在当前shell实例中生效
b)环境变量。所有程序,包括shell启动的程序,都能访问环境变量
c)shell变量。shell设置的特殊变量。
5.常用数据类型
a)字符串
b)shell数组
定义数组的2种方式
输出效果一致:
解释:
${arry_name[@]} 数组变量引用,代表显示数组全部元素;
${arry_name [ n] } 表示数组第"n+1"个元素,计数从0开始算,故+1
${#arry_name[@]}表示显示整个数组长度,注意和字符串长度区分(如下图,字符串长度标点空格也会算在其中)
shell注释
存在2种方式注释
1.单行注释,以“#”开头就是注释
2.段落注释(如图)
大段注释掉输出效果:
shell传递参数
执行某些shell脚本时,需要向脚本传入参数。因此脚本内获取参数的格式。和常用参数如下
常用$参数:
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以单字符显示所有向脚本传递的参数,使用时"[$*]" |
$! | 后台运行的最后一个进程的ID |
$@ | 每个参数显示一个字符,输出所有参数 |
$$ | 脚本运行的当前进程ID |
$? | 显示最后命令退出的状态,0标识没有错误 |
$0 | 表示文件名 |
$n | 表示传递的第n个参数 |
$- | 显示当前shell使用的选项,与set命名功能相同 |
举例
执行结果:
下一篇:基本运算符、流程控制、函数