请帮忙看看我这个shell是什么情况呢

tongtian24 2013-02-20 09:40:52
加精
#!/bin/sh
tt(){
x=5
y=5
j=0
while :
do
echo "\033[3;3H"
if [ $j = 10 ]
then
echo "j:$j"
exit
fi
sleep 1
done
}
trap "j=10" 10
tt &
这段代码!我目的是:我运行这个程序,然后在打开一个窗口,在里面输入 kill -10 "进程号" ,然后就会echo并退出。
当我没在tt后加&时,可以运行想要结果!当我加在tt后加&时,就没反应。
请问这个是什么问题呢!!!
...全文
2753 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
usc_su 2013-02-27
  • 打赏
  • 举报
回复
加&在后台运行了不是? 你继续fg一下 结果应该出来了
YHL27 2013-02-26
  • 打赏
  • 举报
回复
我也不会。。。
oqqLazy12345678 2013-02-23
  • 打赏
  • 举报
回复
我也一直打印\033[3;3H
lucky-lucky 2013-02-23
  • 打赏
  • 举报
回复
关于代码中的033[3;3H 以前研究过,在vi源代码中看见过,如果需要更多的资料可以google Cursor Movement 关于后台运行的代码操作系统会关闭其与标准输入,输出,标准错误输出的文件描述符的链接,因为它们被操作系统理解为无控制终端的进程,与守护进程有点相似,但是却不同于守护进程,当程序尝试向终端输出的时候通常会出现程序被阻塞(暂停)的情况,可以尝试在另一个终端输入kill命令之后,在启动tt函数的终端中输入fg命令查看你要的结果是否被输出。 关于将进程放到后台执行信号是否被阻塞,这会与不同操作系统的实现有所不同,通常操作系统只会阻塞SIGSTOP、SIGQUIT信号,使用trap一般不会受到影响
lll314068698 2013-02-21
  • 打赏
  • 举报
回复
不好意思,我不会
freewanderman 2013-02-21
  • 打赏
  • 举报
回复
我刚运行你的这个脚本,会一直打印\033[3;3H,只能Ctrl+D 结束中断才可以停止,汗啊,为什么不使整个脚本后台运行啊?这样起码还可以查询得到吧....
tongtian24 2013-02-21
  • 打赏
  • 举报
回复
后台运行程序会屏蔽信号的话。那该怎么解决啊????
freewanderman 2013-02-21
  • 打赏
  • 举报
回复
后台运行会屏蔽某些信号,你可以从这个方面考虑一下
rulu0000 2013-02-21
  • 打赏
  • 举报
回复
我也不会。。
tongtian24 2013-02-21
  • 打赏
  • 举报
回复
echo "\033[3;3H" 只是设置光标啊!不应该是一直打印啊!可能AIX版本不一样吧! 我在测试测试,有结果我在说下
  • 打赏
  • 举报
回复
& 是后台符号,放在完整指令列的最后就表示在后台执行,你tt后头加个&是做啥呢?
nannankaqiduo 2013-02-21
  • 打赏
  • 举报
回复
woyebuhui
sqt2013 2013-02-21
  • 打赏
  • 举报
回复
不好意思,我不会

1,194

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • IBM AIX社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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