linux实验之shell编程
Tutorial 5 shell 编程
1 实验简介
本次实验内容主要包括:Shell 变量的定义及其应用,Shell 中的特殊字符,
条件判断结构与循环结构,函数的定义和使用。
2 实验目的
(1)了解 Shell 的作用和主要分类
(2)练习编写简单的 Shell 程序
3 实验内容
(1)创建一个简单的列目录和日期的shell 脚本并运行。
步骤:
①输入下列命令,创建一个新文件:
$ cat >new_file
②输入下列行:
echo “Your files are”
ls
echo “today is”
date
按回车键将光标移到一个新行,按Ctrl+D键保存并退出。
③检查文件内容,确保它是正确的:
$cat new_file
④运行脚本,输入它的文件名:
$. /new_script
该脚本不运行
⑤输入下列命令,显示文件的权限:
ls –l new _file
权限表明该文件不是可执行。要通过简单调用文件名来运行脚本,必须有权限
⑥输入下列命令,使new_file变成可执行文件。
chmod a+x new_file
⑦要查看新的权限,输入:
$ls –l
现在拥有文件的读、写和执行权限。
⑧输入新脚本的名字以执行它:
$. /new_file
所有输入到文件的命令都执行,并输出到屏幕上。
(也可以用vi创建新文件,用:wq命令退出)
(2)用 Shell 语言编制一 Shell 程序,该程序在用户输入年、月之后,自动打
印数出该年该月的日历。
用 vi times 或 cat> times 命令均可
echo "please input the month:"
read month
echo "please input the year:"
read year
cal $month $year
$ bash times (试试用此命令执行脚本)
(3)命令执行控制符练习
①命令顺序执行用法:
$ cd ..;pwd;ls
②命令替换符的用法:
$ echo Today is `date ‘+%A’`
③条件执行命令用法:用 vi 命令建立两个文件 file1 和 file2,然后执行下列文件,
将文件 file1 复制到 file2,如果成功则删除 file1
$ cp file1 file2 && rm file1
④ 后台执行命令用法:在后台顺序执行两命令,20 秒后跳出提示信息“Tea is
ready”:
$ ( sleep 20; echo Tea is ready ) &
⑤命令组合符用法:将两命令的输出送到 mydoc,mydoc 的第 1 行是 Report,后
面是 file3 的内容:
$ ( echo Report; cat file3 ) > mydoc
(4)元字符的引用
①$ echo “* is a wildcard.” #消除*字符的特殊含义
②$ echo ‘The prompter is “$”’ #消除双引号字符的特殊含义
③$ echo “Don’t do that!” #消除单引号字符的特殊含义
④$ echo “Name ID Age Class” #消除空格符的特殊含义
(5) 编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果
两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of
program” (先用 vi 或 cat>命令建立脚本)
echo -n "word1:"
read word1
echo -n "word2:"
read word2
if test "$word1"="$word2"
then
echo "Match"