shell编程
你这个要把日志里面的两行合并到一行上输出,用shell不好做,shell只适合把一行的数据格式转换一下。你这样的需要,应该考虑用PERL来写程序了。
本回答由提问者推荐
shell脚本编程
tputcup124;echo"AddAnother?(y)esor(q)quit:"
当你输入y或q的时候,然后就执行下而的语句:
tputcup418;readphonenum这句就将你输入的y或q赋给变量phonenum
接下来的就是判断你输的是什么,要是q话就退出,这里的退出不是退出while循环,只是退出tputcup124;echo"AddAnother?(y)esor(q)quit:"这一步,即不再输其它的.如果要退出while循环的话要加break,如果说是y的话,它仅仅是给phonenum赋了个变量,什么也没有做,我看后面的也没有再提到phonenum这个变量,我想一定还有其它的代码吧!
然后就接着执行下面的
tputcup518;readlname
tputcup618;readfname
tputcup718;readmidinit
tputcup818;readdeptno
tputcup918;readjobtitle
tputcup1018;readdatehired
#Checktoseeiflastnameisnotablankbeforeyouwritetodisk
if["$lname">""]
echo"$phonenum:$lname:$fname:$midinit:$deptno:$jobtitle:$datehired">>$phonefile
还有下面的一段代码:
tputcup1233;readlooptest
if["$looptest"="q"]
clear;exit
就你发表的这一些程序来看,这里根本不起作用,因为在while之前你就已定义了
looptest=y所以你在这再加上这一句是没有用的,因为looptest就等于y永远不等于q
然后当你的while没有退出来的时候,它就会不停的循环下去,因为
ooptest=y
while[$looptest=y]
这一句其实就等于while:永远为真,不停的循环下去!
以上为鄙人愚见,鄙人也是名shell初学者,有错误之处还请指出,谅解!谢谢!
本回答由提问者推荐
LINux shell编程
bin/bashwhile :doecho -n "n"|bc)echo "一、#!/please input filename :"read fnameif [ "!/bin/bashj=1i=2while [ $i -le 100 ];" ];thencontinuefiif [ -f "$fname" ];thenif [ ! -x "$fname" ];thenchmod u+x $fnamefielsetouch $fnamechmod u+x $fnamefidone二、使用bc进行计算,不会溢出#;doj=$(echo -e "$i*$j\nquit\$fname" == "