求教一个关于shell脚本的关于here document问题 ,麻烦大佬帮忙看看!

一个shell脚本的关于here document问题 
情况:登录linux系统, 
(1)当前提示符$,执行inaccess 43210 命令后,输出一些提示信息,提示符变为inaccess>
(2)当前提示符inaccess>,执行a scf1 命令后,输出一些欢迎信息,提示符变为scf1>
(3)当前提示符scf1>,执行servicest 922 -week,输出一些业务结果信息,提示符还为scf1>
(4)当前提示符scf1>,执行quit,提示符变为inaccess>
(5)当前提示符inaccess>,执行quit,提示符变为$
运行正常。
我目前写了一段shell脚本,定义为test.sh
内容为:
inaccess 43210 <<EOF>>test.log
a scf1
servicest 922 -week
quit
quit
EOF

结果:
$./test.sh
执行test.sh脚本后,进程一定停在那边,也没正常结束,我ctrl+c,结束进程后,返回到提示符$

日志结果是
inaccess的一些提示信息
inaccess>a scf1
scf1的一些欢迎信息
scf1>servicest 922 -week
quit
quit
servicest 922 -week执行后的一些结果信息
inaccess>

进程好像一起在提示符inaccess>,没有退出,因为在scf1>提示符下执行了2次,请问一下,如果修改这个shell脚本,能使脚本正常结束?

一只名叫tom的猫
浏览 172回答 2
2回答

犯罪嫌疑人X

servicest 922 -week这个命令在执行时有点问题吧,看日志现象它在执行时,本命令还没有结束时后面的命令就执行开了,估计你得好好研究一下他的问题。你的scf1状态必须等到它(servicest 922 -week)的结束才能执行quit(有效的quit)给一个不太好的提示吧:估计一下servicest 922 -week的执行时间,在其后加sleep nn=你估计的时间,可能可以正常。

蛊毒传说

建议你用exepct来实现。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Python