1.创建和运行 shell 脚本
shell 脚本提供了一种用来执行冗长的命令、大型或复杂的命令序列以及例程任务的简单方法。shell 脚本是包含一个或多个命令的文件。输入 shell 脚本文件的名字后,系统会执行文件中所包含的命令序列。
可以使用文本编辑器来创建一个 shell 脚本。脚本文件既可以包含操作系统的命令,也可以包含 shell 的内置命令。
以下的步骤是用来编写 shell 脚本文件的常规方针:
(1)使用文本编辑器,创建并且保存一个文件。可以在 shell 脚本文件中包含 shell 命令和操作系统命令的任意组合。根据约定,设置为不为许多用户来使用的 shell 脚本文件将存放在 $HOME/bin 目录中。
注:操作系统并不支持在 shell 脚本文件内的 setuid 或者 setgid 子例程。
(2)要只允许所有者运行(或者执行)文件,使用 chmod 命令。例如,如果文件名为 s cript1,请输入:
chmod u=rwx s cript1
之后按下 Enter(回车)键。
(3)在命令行上输入脚本文件名,运行 shell 脚本文件。如果要运行 s cript1 shell 脚本文件,请输入:
s cript1
之后按下 Enter(回车)键。
注:如果是在命令行上,shell 命令(ksh、bsh 或者 csh)在 shell 脚本文件名之前,则可以运行指定的 shell 脚本文件而不需要使它的权限为可执行。
例如,要在 korn shell 控制下运行名为 s cript1 的非可执行脚本文件,可以输入:
ksh s cript1
2.在 Korn shell或者 Posix shell 上运行多后台进程
Korn shell 或着 POSIX shell 允许运行一个或者多个命令作为后台的进程。这些在 shell 脚本文件内运行的命令被称为协进程。
通过在命令后面放置 |& 运算符可以指定一个协进程。命令的标准输入和输出均被管道传输到脚本文件。
协进程必须满足以下设定的约束:? 每条消息的尾部必须包含一个换行符
? 将所有输出消息发送到标准输出
? 每条消息后面清空标准输出
下面的例子显示了输入如何被传输给协进程并且由协进程返回。
echo "Initial process"
./FileB.sh |&
read -p a b c d
echo "Read from coprocess: $a $b $c $d"
print -p "Passed to the coprocess"
read -p a b c d
echo "Passed back from coprocess: $a $b $c $d"
FileB.sh
echo "The coprocess is running"
read a b c d
echo $a $b $c $d
结果标准输出如下面所示:
Initial process
Read from coprocess: The coprocess is running
Passed back from coprocess: Passed to the coprocess
如果要写到协进程,请使用 print -p 命令。如果要从协进程读出,请使用 read -p 命令。
3.为脚本文件指定 Shell
可以在 shell 脚本文件中包含 shell,从而在指定的 shell 里运行 shell 脚本文件。
如果要在指定的 shell 下运行可执行的 shell 脚本文件,在 shell 脚本文件的第一行中输入 #!Path,然后按下 Enter(回车)键。
#! 字符表明文件类型。Path 变量指定运行 shell 脚本文件的 shell 的路径名。
例如,要在 Bourne shell 下运行 bsh 脚本文件,请输入:
#!/usr/bin/bsh
按下 Enter(回车)键。
硬盘作为用户存储数据的主要场所,其最大的用途莫过于存储数据,但有时往往由于用户操作...
在服务器磁盘阵列出现故障以后,一般情况下会采用两种方法来处理:一是设备厂家对故障设...
企业通过信息化可以大大提高办公和管理效率、节省成本、规范业务和流程,辅助提升企业的...
一.引言 强制性的信息安全架构( uniLink ):将网络划分为资源网与用户网,通过资源...
东芝硬盘开盘成功恢复数据 TOSHIBA MK6008GAH 三星原装超薄移动硬盘60G容量,用了有两...
现在选择IDE磁盘阵列卡(IDE RAID卡)来确保数据安全的人越来越多,如何正确使用IDE RAID...
笔者经常接到一些亲戚朋友经常打电话给我,询问一些有关数据丢失的问题。