导航
  • 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux
  • 问答

shell脚本,请求解释

liaomingxue none 服务器端工程师  2004-09-03 10:33:46
#!/bin/csh
# EndM5
# Do a proper end and shutdown of Mark5A or $1, if any
# Revised: 2002 January 25, JAB
#
if ( "$1" == "" ) then
set name = Mark5A
else
set name = "$1"
endif
set tst = ` ps -ax | grep -E -v "grep|$0:t" | grep $name `
if ( ${#tst} > 0 ) then
echo "$0:t sending INTERRUPT to $name $tst[1] "
kill -INT $tst[1]
else
echo "${0:t} ERROR: Can't find program $name "
exit ( -1 )
endif
...全文
174 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangguoqin1001 2004-09-11
这么一个问题就看出某个国家人聪明与否啦?随便找本有介绍正则表达式的书看看就可以了。
回复
liaomingxue 2004-09-08
看来外国老确实比我们聪明。
程序是一个美国天文专家写的软件中的一部分。
回复
wangguoqin1001 2004-09-06
grep|$0 很好解释,该程序运行的时候会出现一个grep的进程和一个程序本身($0)的进程,而这两项是要排除在外的。但:t是什么意思我弄不懂。
回复
liaomingxue 2004-09-05
grep -E -v "grep|$0:t"中的后面的正则式,是什么意思呢?特别是$0:t
回复
liaomingxue 2004-09-04
关键是: tst = ` ps -ax | grep -E -v "grep|$0:t" | grep $name `这一句
其实我连if ( ${#tst} > 0 )
echo "${0:t} ERROR: Can't find program $name "
也不懂
1999年写过shell程序,怎么感觉从来没有用这些东西?
回复
tengulre 2004-09-04
UP
回复
flaireyes 2004-09-04
if ( ${#tst} > 0 )

就是判断tst里有没内容,大于0就是找到那个程序了

前面$1内容是从第一个命令行里传进来的。
回复
baga 2004-09-04
tst = ` ps -ax | grep -E -v "grep|$0:t" | grep $name `
的意思是说列出所有进程,匹配你运行这个程序的进程和匹配Mark5A 进程
回复
pacman2000 2004-09-04
就是把一个进程砍掉啊。
默认是给Mark5A发SIGINT信号。
回复
liuhking 2004-09-04
发出一个中断请求!!!!!!!!!!!
回复
mamali 2004-09-04
shell程序

就是Linux下的编程吗?
回复
liaomingxue 2004-09-03
真的很难?
回复
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

2.0w+

社区成员

Linux/Unix社区 应用程序开发区
申请成为版主
社区公告
暂无公告