1.定义变量(无引号、单引号、双引号)
2.输出变量值(两种方法)、换行输出、不换行输出
3.修改变量值,追加新内容,并输出
4.使用read赋值变量值,并输出,对选项-p、-n进行练习
① -p prompt :显示提示信息,提示内容为 prompt。
② -n num :读取 num 个字符,而不是整行字符。
5.输出系统环境变量
6.特殊变量的应用:$、?
① $:查看当前Bash的进程号(PID)
② ?: 返回上一个命令的状态码
一般用0表示成功,非0表示失败或异常
7、输出重定向”>”,”>>”,输出到wlh.sh(自己姓名首拼)中
① 在命令后输入大于号“>”并且后跟一个文件名,对原文件的内容进行了“覆盖”,即清空原文件内容
② 在命令后输入两个大于号“>>”并且后跟一个文件名,表示在原文件的基础上“追加”新内容
8.输入重定向”<”练习(与ppt中不同的案例)
功能:将原来从键盘输入的数据改为从文件读取
9.管道”|”练习。
思考与讨论
- 用命令的执行结果为变量赋值的两种方法`command ` 或 $(command ),哪个更好?
答:这两个都是将命令的执行结果赋值给变量,第一种方式把命令用反引号` `(位于 Esc 键的下方)包围起来,反引号和单引号非常相似,容易产生混淆;第二种方式把命令用$()包围起来,区分更加明显,所以从表现形式上看$(command )更好点。
2.使用变量值的两种形式$variable_name 或 ${variable_name}区别是什么?
答:相同点:都可以调用变量;
不同点:${variable_name}具有截取功能,可以只截取变量的一部分,格式为${变量名:开始处:步长},其中截取位置从0开始计数,而$variable_name不可以。
3.如何验证变量的作用范围?
shell作用域有三种全局变量、局部变量、环境变量
①全局变量:全局变量的作用域为当前的整个shell窗口,也就意味着两个不的同的shell窗口中声明的全局变量是无法相互使用的,而shell脚本是shell窗口的下级,一个shell窗口可以执行多个shell脚本,这多个shell脚本中的全局变量是可以相互使用的。
②局部变量:变量的作用域仅映射到shell函数的内部,我们知道在shell函中定义一个默认的变量,在函数外部是可以取到他的值的,也就意味着该变量是一个全局变量,那么局部变量则需要加入local命令,具体操作如下图:
③环境变量:环境变量只在当前的shell窗口的主进程中可以使用,如果想要在它的子进程中使用必须使用export命令,然后她的子进程就可以使用该环境变量
拓展实验
将管道、find、grep结合进行练习。