1、定义变量(无引号、单引号、双引号)
无引号
单引号
双引号
2、输出变量值(两种方法)、换行输出、不换行输出
Echo -e 解析转义字符 \n 表示换行
3、修改变量值,追加新内容,并输出
4、使用read赋值变量值,并输出,对选项-p、-n进行练习
-p可以设置输入提示
-n表示读取n个字符
5、输出去系统环境变量
使用env和export命令查看系统当前的环境变量
6、特殊变量的应用:$、?
$:表示查看当前的进程号(PID)
?:表示返回上一个命令的状态码(0表示成功,非0表示失败或异常)
7、输出重定向”>”,”>>”,输出到wlh.sh(自己姓名首拼)中
一个>:表示对原文件的内容进行了“覆盖”,即清空原文件内容
两个>>:表示在原文件的基础上“追加”新内容
8、输入重定向”<”练习(与ppt中不同的案例)
9、管道”|”练习。
“|”连接两个命令,左侧命令的输出成为右侧命令的输入
实验思考
答:反单引号和括号是一样的,在执行一条命令时都会将反单引号或者括号的中的语句执行一次,再将结果加入到原命令重新执行一次,根据POSIX规范,要求系统工程师采用的是$(命令)的形式。所以,我们最好还是遵循这个规范,少用``,多用$()。
答:$variable_name与${variable_name}都可以调用变量,但是${variable_name}可以只截取变量的一部分,而$variable_name不可以。其中${variable_name}截取字符类似于数组中索引。
Shell变量的作用域可以分为三种: 有的变量可以在当前Shell会话中使用,这叫做全局变量(globalvariable); 有的变量只能在函数内部使用,这叫做局部变量(localvariable); 而有的变量还可以在其它 Shell 中使用,这叫做环境变量(environmentvariable)。 关于对全局变量的验证: 创建两个shell文件,1.sh和2.sh,其中两个文件的内容为下图所示,可以看到我们在1.sh中定义的b的值,在执行2.sh时,可以输出在1中的定义。 关于局部变量的验证: 写一个函数利用local定义一个局部变量a,那么我们在执行函数时,并不会修改全局变量当中值。即为局部变量 关于环境变量的验证: 环境变量分父shell和子shell,父shell可以理解为全局变量,父shell中的变量不能在子shell中调用,需要通过export命令将变量导出到子shell,我们可以通过echo $$l来查看当前的进程号,可以通过bash进入子shell来进行验证如下图。 |
实验拓展
将管道、find、grep结合进行练习。
find是实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找
grep 是找出文件的内容为所要指定的信息。
通过管道“|”将二者结合起来 可以查找出包含特定信息的特定文件。