Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103775792
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-17 21:02:11

 来源: www-900.ibm.com 作者:ibm
 
 
 
 

  本文介绍了如何创建并运行shell脚本以及如何在脚本文件中使用shell。本文包括如下的内容:

  创建和运行 shell 脚本

  在 Korn 或 Posix shell 上运行多后台进程

  为脚本文件指定 Shell

  1.创建和运行 shell 脚本

  shell 脚本提供了一种用来执行冗长的命令、大型或复杂的命令序列以及例程任务的简单方法。shell 脚本是包含一个或多个命令的文件。输入 shell 脚本文件的名字后,系统会执行文件中所包含的命令序列。

  可以使用文本编辑器来创建一个 shell 脚本。脚本文件既可以包含操作系统的命令,也可以包含 shell 的内置命令。

  以下的步骤是用来编写 shell 脚本文件的常规方针:

  (1)使用文本编辑器,创建并且保存一个文件。可以在 shell 脚本文件中包含 shell 命令和操作系统命令的任意组合。根据约定,设置为不为许多用户来使用的 shell 脚本文件将存放在 $HOME/bin 目录中。

  注:操作系统并不支持在 shell 脚本文件内的 setuid 或者 setgid 子例程。

  (2)要只允许所有者运行(或者执行)文件,使用 chmod 命令。例如,如果文件名为 script1,请输入:

  chmod u=rwx script1

  之后按下 Enter(回车)键。

  (3)在命令行上输入脚本文件名,运行 shell 脚本文件。如果要运行 script1 shell 脚本文件,请输入:

  script1

  之后按下 Enter(回车)键。

  注:如果是在命令行上,shell 命令(ksh、bsh 或者 csh)在 shell 脚本文件名之前,则可以运行指定的 shell 脚本文件而不需要使它的权限为可执行。

  例如,要在 korn shell 控制下运行名为 script1 的非可执行脚本文件,可以输入:

  ksh script1

  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(回车)键。



原文链接:
阅读(724) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~