linux命令pause,请问linux的shell脚本中有没有和bat中pause功能相似的命令?

f2e22b7441232c8a127dabcf41faff8e.png

你好~

你说的那个没功夫给你整

给你这个吧用SHELL写的

如何远程杀死僵进程?

所谓“僵进程”是指处于睡眠中,而且没用的进程。在进行并行计算时经常会有僵进程产生。由于用 top 看不到“僵进程”,所以写了如下一个叫做“rkill”的 shell 文件:

#!/bin/tcsh

echo " Input start number of node: "

set N1="$

echo " Input end number of node: "

set N2="$

echo " Input the NAME of program"

set pname="$

echo "**********************************************************"

while($N1 <= $N2)

set h='t'$N1

set ppid=`rsh $h ps -ef | grep $pname | awk '{print $2}' `

echo "rsh $h kill $ppid"

rsh $h kill $ppid

@ N1++

end

echo "**********************************************************"

如何将一个 index 文件中的空链接删除?

在目录 /doc/Art_and_Photos/photo/NASA-Astronomy_Picture_of_the_Day 中只有有限的几个文件,而 archivepix.html 文件中却链接了两千多个文件,我们的目标就是要把不存在的文件链接删除掉。

#!/bin/tcsh -f

# 从当前目录中查找有哪些可用文件。find 不支持正则表达式 \{\}

set tmp=`find . -type f -maxdepth 1 -name "ap[0-9][0-9][0-9][0-9][0-9][0-9].html" `

# 将查找结果 ./ap000303.html 转换为 ap000303.html

set ff1=`echo $tmp | sed -e 's/\.\/\(ap[0-9]\{6\}\.html\)/\1/g' `

# 在文件 archivepix.html 中查找包含类似 ap000303.html 的行,并将其导入临时文件 ftmp 中

grep 'ap[0-9]\{6\}\.html' archivepix.html >ftmp

# 将 ftmp 中的每一行转换为 ap000303.html 的形式,这样 ff1 和 ff2 中的字符串在形式上就是相同的了。

set ff2 = ` sed -e 's/.*\(ap[0-9]\{6\}\.html\).*/\1/g' ftmp`

rm ftmp -f

# 比较变量 ff1 和 ff2 的内容,如果一个字符串只存在于 ff2 中,那么就把文件 archivepix.html 中含有

# 该字符串的行删除掉。

foreach f2 ($ff2)

echo $f2

set flag=0

foreach f1 ($ff1)

if ($f2 == $f1) then

set flag=1

endif

end

if($flag == 0) then

sed -e '/'$f2'/d' archivepix.html >ftmp # 此句最关键之处在于'$f2'可用于正则表达式。

mv ftmp archivepix.html -f

endif

end

如何将一个目录中的所有文件链接到网页中?

只要将下列程序的输出导到一个文件中,再将其拷至网页的相应位置就可以了。这里最关键的是看双引号如何输出(\")。

#!/bin/tcsh -f

set dd = "/doc/Art_and_Photos/Flash/flash/AGui"

set ffff = `find $dd -type f `

set n=0

foreach f ($ffff)

@ n++

echo $f

echo '< a href='\"$f\"''>> AGui.html

end

如何为一堆文件换名字?

在吴老师的笔记心得中介绍了张林波的高招,但那是 bash 的,而且是以命令行形式给出的。为了便于理解,我将其改写为 tcsh 格式,并将其置于脚本文件之中,更利于使用。

#!/bin/tcsh -f # -f 说明直接运行该文件,而不会先运行 .cshrc 进行初始化

rm tmp_file -f # 确保该文件不存在

foreach fold (*.jpg.*)

set fnew = ` echo $fold | sed -e "s/\.jpg\.\(.*\)/-\1.jpg/g" ` # 精华之处

echo "mv $fold $fnew -f " >>tmp_file

end

chmod a+x tmp_file

./tmp_file

rm tmp_file -f

在这个脚本文件中,关键是“精华之处”。它的意义是:首先将要修改的文件名($fold)通过管道( | ) 传给流编辑器(sed),流编辑器对文件名进行处理,其各项的具体意义为:

set fnew = ` echo $fold | sed -e "s/\.jpg\.\(.*\)/-\1.jpg/g" `

sed -e 命令+选项 表示允许多点编辑

s/re/string/ 用 string 替换正则表达式 re

/\.jpg\.\(.*\)/ “\.”表示一个真正的点,“\.jpg\.” 代表文件名中的“ .jpg.”;“\(.*\)” 中的‘.’匹配一个非换行符的字符,‘*’匹配 0 个或多个“先前”字符,

它与 shell 的通配符完全不同,shell 的通配符代表 0 个或多个“任意”字符。

“.*”所代表的内容被设为“标签 1”,可在需要的地方用“\1”引用。值得注意

的是:“.*”决不能用“*”来代替,因为“*”将表示任意个“\.”。

/-\1.jpg/ “\1”代表“标签 1”的内容

g 表示行内全面替换

这里还有一个地方需要提醒,那就是将 `echo ...` 引起来的不是单引号,而是键盘左上角标有 “~ ` ”上的撇号.

如何解决网页中字体放大时出现重叠的问题?

方案一:适用于单层目录

#!/bin/tcsh -f

set dir=`ls .`

foreach d ($dir)

if( -d $d) then # 判断是否为目录

cd $d

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值