1.自定义Shell变量时,变量名有什么规则?
可以包括数字、字母、下划线,不能以数字开头
变量名区分大小写
赋值时等号两边不要有空格
尽量不要使用关键字和特殊字符
给同一个变量多次赋值时,最后一次的赋值生效
2.简述预定义变量KaTeX parse error: Can't use function '$' in math mode at position 2: 、$̲?、$0、$#、$*、$!的作… 保存当前运行进程的(PID)号
$? 保存命令执行结果的(返回状态)
$0 保存当前运行的(进程名)或(脚本名)
$# 保存位置变量的(个数)
$* 保存所有位置变量的(值)
$! 保存后台(最后一个进程)的PID号
3.简述三种定界符在变量赋值操作中的特点。
双引号 " ":允许扩展,以 $ 引用其他变量
单引号 ’ ':禁用扩展,即便 $ 也视为普通字符
反撇号 :将命令的执行输出作为变量值
4.列出常见的整数值比较操作,并说明各自作用。
-eq 等于(Equal)
-ne 不等于(Not Equal)
-ge 大于或等于(Greater or Equal)
-le 小于或等于(Lesser or Equal)
-gt 大于(Greater Than)
-lt 小于(Lesser Than)
5.简述Shell环境常见的中断及退出控制指令。
break:跳出当前所在的循环体,执行循环体后的语句。
continue:跳过循环体内余下的语句,重新判断条件以便执行下一次循环。
exit:退出脚本,默认返回值是 0。
return:用在函数里 指定返回值。
shift:用于迁移位置变量,将 $1~$9 依次向左顺序移动。
*6.正则表达式中的+、?、分别表示什么含义?
+:最少匹配一次,比如a+可匹配a、aa、aaa等
?:最多匹配一次,比如a?可匹配零个或一个a
:匹配任意多次,比如a可匹配零个或任意多个连续的a
7.编写脚本的步骤?
1、明确脚本要实现的功能
2、需要使用哪些命令
3、需要使用哪些流程控制
4、数据是变化的,就要用变量来表示
8.说一下-n -z -d -f -e -r -w -x -l !-z在shell中分别代表什么意思?
-n 非空为真
-z 字符串为空为真
-d 是目录且存在为真
-f 是普通文件且存在为真
-e 存在为真
-r 可读为真
-w 可写为真
-x 可执行为真
-l 是链接为真
!-z不为空
9.shell变量的作用
为灵活管理Linux系统提供的特定参数,有两层意思
变量名:使用固定的名称,由系统预设或用户定义
变量值: 能够根据用户设置,系统环境的变化而变化
10变量的类型
自定义变量:由用户自己定义,修改和使用
环境变量: 由系统维护,用于设置工作环境
位置变量: 通过命令行给脚本程序传递参数
预定义变量:BASH中内置的一类变量,不能直接修改
11.定义一个新的变量
格式: 变量名=变量值
变量名以字母或下划线开头,区分大小写,建议全大写
**12.查看变量的值: echo
符引用其他变量值
单引号: 禁止引用其他变量值,$视为普通字符
反撇号:命令替换,提取命令执行后的输出结果
将键盘输入内容为变量赋值
格式: read [-p “提示信息”] 变量名
13.设置变量的作用范围
export 变量名
export 变量名=变量值
两种格式可以混合使用
14.整数变量的运算:
expr 变量1 运算符 变量2 [运算符 变量3]
常见的运算符
加法运算符 +
减法运算符: -
乘法运算符:*
除法运算符: /
取余运算:%
整数变量的运算(2)
((变量=变量运算符变量));
等号后面的变量可以是具体数值
例子:
((a=a+3));