实验八:Shell Scriptshell创建文件并写入内容
1 实验目的
通过实验掌握Linux bash
2 实验设备
硬件:PC机一台
软件:Windows98/XP/2000系统,VMware Workstation6.0,Red Hat Linux
3 实验内容
(1) Shell中的变量:用户自定义变量与环境变量
(2) 命令别名
(3) Bash shell 的操作环境
(4) 数据流重定向
(5) 管道命令
4 实验预习要求
仔细阅读参考书:
【1】鸟哥的Linux私房菜 基础学习篇 第三版,人民邮电出版社,鸟哥
【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心
【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心
5 实验步骤
略
6 实验重点:
(1)什么是Shell Script
Shell script 是利用 shell 的功能所写的一个“程序 (program)”,这个程序是使用纯文本文件,将一些 shell 的语法与命令写在里面, 搭配正规表达式、管道命令与数据流重定向等功能,以达到我们所想要的处理目的。
(2)第一个Shell Script的编写与执行
shell script 其实就是纯文本文件,我们可以编辑这个文件,然后让这个文件来帮我们一次运行多个命令, 或者是利用一些运算与逻辑判断来帮我们达成某些功能。在 shell script 的编写中还需要注意如下事项:
● 命令的运行是从上而下、从左而右的分析与运行;
● 命令的执行: 命令、参数间的多个空白都会被忽略掉;
● 空白行也将被忽略掉,并且 [tab] 按键所在的空白同样视为空白键;
● 如果读取到一个 Enter 符号 (CR) ,就尝试开始运行该行命令;
● 如果一行的内容太多,则可以使用“ \[Enter] ”来扩展至下一行;
● “ # “可做为注解!
运行shell script的方法:假设shell script放在 /root/shell/shell.sh中。
a) 直接执行命令:shell.sh文件必须要具备可读与可运行 (rx) 的权限,然后:
i. 绝对路径:使用/root/shell/shell.sh 来执行命令;
ii. 相对路径:假设工作目录在/root/shell/,则使用 ./shell.sh 来运行
iii. 变量PATH功能:将 shell.sh 放在 PATH 指定的目录内,例如: ~/bin/
b) 以 bash 程序来运行:通过” bash shell.sh “或” sh shell.sh “来运行
若 shell.sh 在 ~/bin 内且具有 rx 的权限,那就直接输入 shell.sh 即可运行该脚本程序!
当使用 sh shell.sh 或 bash shell.sh时,shell.sh 只要有 r 的权限即可被运行
编写第一个shell script
[root@localhost ~]# mkdir shellscripts; cd shellscripts
[root@localhost shellscripts]# vi sh01.sh
#!/bin/bash
# Program:
# This program shows "Hello World!" in your screen.
# History:
# 2012-03-18 EE.HBUE First release
echo "Hello World! \n"
exit 0
在本章当中,请将所有编写的 script 放置到root/shellscript 这个目录内,
程序分析:
● 第一行 #!/bin/bash 声明这个 script 使用的 shell 名称:因为我们使用的是 bash ,所以,必须要以“ #!/bin/bash ”来声明这个文件内的语法使用 bash 的语法!那么当这个程序被运行时,他就能够加载 bash 的相关环境设置档 (一般来说就是 non-login shell 的 ~/.bashrc), 并且运行 bash 来使下面的命令能够运行!这很重要的!(在很多状况中,如果没有设置好这一行, 那么该程序很可能会无法运行,因为系统可能无法判断该程序需要使用什么 shell 来运行!)
● 程序内容的说明:整个 script 当中,除了第一行的“ #! ”是用来声明 shell 的之外,其他的 # 都是注解用途! 所以上面的程序当中,第二行以下就是用来说明整个程序的基本数据。一般来说,建议一定要养成说明该 script 的:1. 内容与功能; 2. 版本信息; 3. 作者与联络方式; 4. 创建日期;5. 历史纪录 等等。
● 主要环境变量的声明:建议务必要将一些重要的环境变量设置好,其中 PATH 是当中最重要的! 如此一来,则可让我们这个程序在进行时,可以直接执行一些外部命令,而不必写绝对路径!
● 主要程序部分:就将主要的程序写好即可!在这个例子当中,就是 echo 那一行!
● 告知运行结果 (定义返回值):可以利用 exit 这个命令来让程序中断,并且返回一个数值给系统。 在这个例子当中,使用 exit 0 ,这代表离开 script 并且返回一个 0 给系统, 所以运行完这个 script 后,若执行 echo $? 则可得到 0 的值!运行结果:
[root@localhost scripts]# sh sh01.sh
Hello World !
另外,也可以利用:”chmod a+x sh01.sh; ./sh01.sh”来运行这个 script!
Shell Script One: 交互式脚本:变量内容由用户决定
很多时候我们需要用户输入一些内容,好让程序可以顺利运行。示例中使用 read 命令,编写一个 script ,可以让用户输入:1. first name 与 2. last name, 最后并且在屏幕上显示:Your full name is: 的内容:
[root@localhost shellscripts]# vi sh02.sh
#!/bin/bash
# Program:
# User inputs his first name and last name. Program shows his full name.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论