shell脚本,请求解释

liaomingxue 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
...全文
236 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
真的很难?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧