考试题1:用source执行脚本和用bash执行Shell脚本的区别是什么?
    调用source或者. 是在当前shell环境加载脚本,因此保留变量
    每次调用bash都会开启一个子shell,因此不保留当前的shell变量

    考试题2:如何自定义环境变量?

    1. 变量名要求:字母、数字、下划线组成、可以是字母或是下划线开头
    2. 变量名严格区分大小写
    3. 等号左右不能有空格

    考试题3:定义变量内容,不加引号、单引号、双引号、反引号结果有什么不同?应该怎么用?

    1. 单引号,所见即所得,强引用
    2. 双引号,输出引号里所有内容,识别特殊符号,弱引用
    3. 无引号,连续的符号可以不加引号,有空格则有歧义,最好使用双引号
    4. 反引号,引用命令执行结果,等于$()用法

    考试题4:请分别说出2个以上用于整数运算特殊符号或命令,以及适合小数运算的命令。
    ((1+1)) [1+1]
    echo "3.2 2.4"|awk '{print ($1+$2)}'

    考试题5:写出特殊变量对应的意义及应用 $0、$n、$#、$*、$@、$?、$$、$!、$_

    1. $0 获取shell脚本文件名,以及脚本路径
    2. $n 获取shell脚本的第n个参数,n1~9之间,如$1 ,$2, $9 ,大于9则需要写,${10},参数空格隔开
    3. $# 获取执行的shell脚本后面的参数总个数
    4. $* 获取shell脚本所有参数,不加引号等同于$@作用,加上引号"$*"作用是 接收所有参数为单个字符串,"$1 $2.."
    5. $@ 不加引号,效果同上,加引号,是接收所有参数为独立字符串,如"$1" "$2" "$3" ...,空格保留
    6. $? 上一次命令执行状态返回值,0正确,非0失败
    7. $$ 当前shell脚本的进程号
    8. $! 上一次后台进程的PID
    9. $_ 再次之前执行的命令,最后一个参数

    考试题6:写出下面特殊变量扩展的意义
    ${oldboy}、${#oldboy}、${oldboy:offset:length}、${oldboy#word}、${oldboy##word}、${oldboy%word}、${oldboy%%word}、${oldboy/pattern/string}、${oldboy//pattern/string}、${oldboy:-word}

    ${oldboy}                    返回oldboy变量值
    ${#oldboy}                返回变量长度,字符长度
    ${oldboy:offset:length}                    返回从offset开始,长度为length的字符
    ${oldboy#word}        从变量开头删除最短匹配的word子串
    ${oldboy##word}        从变量开头,删除最长匹配的word
    ${oldboy%word}        从变量结尾删除最短的word
    ${oldboy%%word}        从变量结尾开始删除最长匹配的word
    ${oldboy/pattern/string}                用string代替第一个匹配的pattern
    ${oldboy//pattern/string}                用string代替所有的pattern
    ${oldboy:-word}     如果oldboy变量值为空或未赋值,就会返回word字符串替代变量的值,如果变量未定义,则返回备用的值。防止变量为空或未定义导致异常
    

    考试题7:在条件测试与表达式中,[]和[[]]有何区别?

    考试题8:说出适合在[]以及test中整数比较的特殊运算符号?

    考试题9、输出下面菜单 1.install MySQL 2.install Tomcat 3.exit 当用户选择对应的数字就开始安装对应的服务(可echo输出替代),需要对用户输入的数字进行判断是否为整数(用条件测试表达式实现)。

    考试题10、使用read读入方式比较两个整数大小(用条件表达式实现)。