免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1292 | 回复: 0
打印 上一主题 下一主题

[新手入门] 怎样使用 shell [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-24 12:55 |只看该作者 |倒序浏览

怎样使用 shell


内容
提要

本文介绍了如何创建并运行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(回车)键。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14848/showart_90183.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP