学习目标
编写Shell程序
执行Shell程序
正文
Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂。Shell程序是指放在一个文件中的一系列Linux命令和实用程序。在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令。首先,来编写第一个Shell程序,从中学习Shell程序的编写、修改权限、执行过程。
i、编辑Shell程序
编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/home/study(练习专用目录,不存在自己新建一个)下。
root@ubuntu:/home/study# vi dd
#! /bin/sh
echo "Mr.$USER,Today is:"
echo &date "+%B%d%A"
echo "Wish you a lucky day !"
注意:#! /bin/sh通知采用bash解释。如果在echo语句中执行Shell命令date,则需要在date命令前加符号“&”,其中%B%d%A为输入格式控制符。
ii、建立可执行程序
编辑完该文件之后不能立即执行该文件,需给文件设置可执行程序权限。使用如下命令。
root@ubuntu:/home/study# chmod +x dd
iii、执行Shell程序
执行Shell程序有下面三种方法:
方法一:
root@ubuntu:/home/study# ./dd
方法二:
另一种执行date的方法就是把它作为一个参数传递给Shell命令:
root@ubuntu:/home/study# bash dd
方法三:
为了在任何目录都可以编译和执行Shell所编写的程序,即把/home/study的这个目录添加到整个环境变量中。
root@ubuntu:/home/study# export PATH=/home/study:$PATH
root@ubuntu:/home/study# dd
实例:编写一个Shell程序mkf,此程序的功能是:显示root下的文件信息,然后建立一个kk的文件夹,在此文件夹下建立一个文件aa,修改此文件的权限为可执行。
分析:此Shell程序中需要依次执行下列命令为:
进入root目录:cd /root
显示root目录下的文件信息:ls –l
新建文件夹kk: mkdir kk
进入root/kk目录:cd kk
新建一个文件aa: vi aa #编辑完成后需手工保存
修改aa文件的权限为可执行:chmod +x aa
回到root目录:cd /root
因此该Shell程序只是以上命令的顺序集合,假定程序名为mkf
root@ubuntu:/home/study# vi mkf
mkf文件添加如下内容:
cd /root
ls -l
mkdir kk
cd kk
vi aa
chmod +x aa
cd /root
root@ubuntu:/home/study# chmod +x mkf
root@ubuntu:/home/study# export PATH=/home/study:$PATH
root@ubuntu:/home/study# mkf