【Shell编程基础与实践】 1. Shell全局变量的定义:在Shell编程中,定义全局变量使用的是`export`命令,例如`export VARNAME=value`。这样定义的变量可以在当前会话的所有子进程中被访问。 2. 读取文件内容到Shell变量:`read`命令用于从标准输入或者指定文件中读取数据并赋值给Shell变量,如`read VARNAME < file.txt`会将文件`file.txt`的第一行内容赋给变量`VARNAME`。 3. 双引号的作用:当字符串被双引号包围时,Shell不会解释其中的特殊字符,例如通配符、转义字符等,保持它们的原始意义。 4. 当前路径环境变量:在Shell中,表示当前工作目录的环境变量是`PWD`。 5. Shell的双重角色:Shell不仅是用户命令的解释器,负责解析和执行用户输入的命令,它还是一种强大的脚本编程语言,例如Linux默认的Shell是bash。 6. 执行Shell脚本:在编写好的Shell脚本文件前添加执行权限(`chmod +x script.sh`),才能使其可执行。 7. 处理多个参数:如果Shell脚本接收的参数超过9个,可以通过`shift`命令逐个移动参数,以便后续处理。 8. 设置执行权限的命令:使用`chmod`命令加上`a+x`参数可以为所有用户赋予执行权限,如`chmod a+x filename`。 9. 测试条件的方括号:在Shell中,方括号用于条件测试,其两边必须有空格,例如`[ expression ]`。 10. Tab补全:在Shell中,按下Tab键可以自动补全命令、文件名等。 11. 改变命令提示符:通过修改环境变量`PS1`可以改变命令提示符的显示格式。 12. `grep`命令的-E选项:用于启用扩展正则表达式,`grep -E '[Hh]enr(y|ietta)' file`会在`file`中查找匹配Henry、henry、Henrietta或henrietta的行。 13. `shift`命令的使用:在给定的程序中,`shift`命令用于移动位置参数,每次调用都会使位置参数向左移动一位,`$1`变为`$2`,以此类推。 **简答题解析** 1. 给出的SHELL程序:该程序首先找到`/root`目录下包含`bak`的文件或目录(#1),然后检查结果是否为空,如果不为空则不执行任何操作;如果为空,创建`/root/bak`目录并进入(#2-#3),接着获取当前日期的年月日(#4),并基于这些日期信息创建压缩文件名(#5),最后将`/etc`目录打包并保存至`/root/bak`(#6)。整个程序的功能是创建一个名为`/root/bak`的目录(如果不存在),并将`/etc`目录的当前内容备份到一个带有日期的归档文件中。 2. 位置变量:位置变量是Shell脚本中用于接收命令行参数的预定义变量,如`$1`、`$2`分别代表第一个和第二个参数。Shell变量的类型包括用户自定义变量、环境变量(影响所有子进程)、位置变量($1-$9)和特殊变量(如$0表示脚本名,$$表示当前进程ID)。 3. 另一个SHELL程序:这个程序首先将第一个位置参数赋值给`dir`(#1),接着检查`dir`是否为有效目录(#2),如果是,则切换到该目录(#3),然后遍历目录中的所有文件(#4),对于每一个文件,如果它是普通文件(#5),则打印文件内容(#6)并在结束后输出“end of file”。如果`dir`不是一个有效的目录,程序会输出错误消息。整个程序的作用是在给定的目录下查看所有文件的内容。 以上就是关于Shell编程的一些基本知识点和实际应用示例,包括变量定义、条件测试、文件操作、命令行参数处理等内容。通过理解这些,可以更好地编写和理解Shell脚本,提高Linux系统管理的效率。
剩余11页未读,继续阅读
- 粉丝: 3814
- 资源: 59万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程