Shell脚本输出显示的问题。。
Tofloor
poster avatar
zxh17173
deepin
2011-11-03 23:00
Author
命令写入脚本以后好像是运行完成之后所有字符一起输出。。(除了echo)
不是执行一行命令就输出执行过程。。。
有什么办法实现这种输出吗?
PS:百度了一下 关键词无力。。
Reply Favorite View the author
All Replies
hazzm02
deepin
2011-11-03 23:17
#1
没明白lz什么意思
Reply View the author
zxh17173
deepin
2011-11-03 23:33
#2
没明白lz什么意思
好吧 ,这也是我无力搜索的原因之一,没有很准确的词汇来描述

脚本运行之后结果输出是等所有的命令都执行完成后才输出。。。。中间很多的实时信息根本没法看到,就算要看还要等脚本执行完成之后往前找。。。
希望就是脚本可以执行过程中也可以实时输出运行结果。。。。
Reply View the author
hazzm02
deepin
2011-11-03 23:53
#3
[quote]没明白lz什么意思
好吧 ,这也是我无力搜索的原因之一,没有很准确的词汇来描述

脚本运行之后结果输出是等所有的命令都执行完成后才输出。。。。中间很多的实时信息根本没法看到,就算要看还要等脚本执行完成之后往前找。。。
希望就是脚本可以执行过程中也可以实时输出运行结果。。。。[/quote]
你是想要调试是吧?这个我也不懂,不过貌似有个开源软件叫bashdb可以用来调试
Reply View the author
stephen
deepin
2011-11-04 01:10
#4
命令写入脚本以后好像是运行完成之后所有字符一起输出。。(除了echo)
不是执行一行命令就输出执行过程。。。
有什么办法实现这种输出吗?
PS:百度了一下 关键词无力。。

请描述一下你的具体环境。在gnome-terminal下还是其他的terminal中?shell是bash还是啥?是所有脚本都那样还是个别脚本那样?
Reply View the author
zxh17173
deepin
2011-11-04 18:24
#5
[quote]命令写入脚本以后好像是运行完成之后所有字符一起输出。。(除了echo)
不是执行一行命令就输出执行过程。。。
有什么办法实现这种输出吗?
PS:百度了一下 关键词无力。。

请描述一下你的具体环境。在gnome-terminal下还是其他的terminal中?shell是bash还是啥?是所有脚本都那样还是个别脚本那样?[/quote]
fedora 11 没有安装桌面环境,终端是用pietty SSH的,SHELL用的是bash,应该是所有脚本都是这样。。。命令一长脚本运行就跟假死一样,除非插入大量echo。。。
我感觉最明显的就是
用脚本tar就解压两个文件,信息是两个包都解完之后才完整显示。。。
Reply View the author
zxh17173
deepin
2011-11-04 18:27
#6
顺便请教一下大牛,
-----------------------------------------
#!/bin/bash
STRA=$(grep STR1 file1|cut -c0-10)
STRB=$(grep STRA file2|cut -c0-10)
echo $STRA,$STRB
------------------------------------------
我试了一下好像不行,请问STRB要怎么写才行  这种变量引用叫什么?
Reply View the author
stephen
deepin
2011-11-04 18:38
#7
顺便请教一下大牛,
-----------------------------------------
#!/bin/bash
STRA=$(grep STR1 file1|cut -c0-10)
STRB=$(grep STRA file2|cut -c0-10)
echo $STRA,$STRB
------------------------------------------
我试了一下好像不行,请问STRB要怎么写才行  这种变量引用叫什么?

如果STR1,STRA,STRB都是变量的话,那么在引用的时候都要加$,除非在等号左边。
  1. #!/bin/bash
  2. STRA=$(grep $STR1 file1|cut -c0-10)
  3. STRB=$(grep $STRA file2|cut -c0-10)
  4. echo $STRA,$STRB
Copy the Code
Reply View the author
stephen
deepin
2011-11-04 18:39
#8
[quote][quote]命令写入脚本以后好像是运行完成之后所有字符一起输出。。(除了echo)
不是执行一行命令就输出执行过程。。。
有什么办法实现这种输出吗?
PS:百度了一下 关键词无力。。

请描述一下你的具体环境。在gnome-terminal下还是其他的terminal中?shell是bash还是啥?是所有脚本都那样还是个别脚本那样?[/quote]
fedora 11 没有安装桌面环境,终端是用pietty SSH的,SHELL用的是bash,应该是所有脚本都是这样。。。命令一长脚本运行就跟假死一样,除非插入大量echo。。。
我感觉最明显的就是
用脚本tar就解压两个文件,信息是两个包都解完之后才完整显示。。。[/quote]

我觉得可能事pietty的某些设置或者bash的某些设置有问题,而不是shell脚本的问题。
Reply View the author
zxh17173
deepin
2011-11-04 18:52
#9
[quote]顺便请教一下大牛,
-----------------------------------------
#!/bin/bash
STRA=$(grep STR1 file1|cut -c0-10)
STRB=$(grep STRA file2|cut -c0-10)
echo $STRA,$STRB
------------------------------------------
我试了一下好像不行,请问STRB要怎么写才行  这种变量引用叫什么?

如果STR1,STRA,STRB都是变量的话,那么在引用的时候都要加$,除非在等号左边。
  1. #!/bin/bash
  2. STRA=$(grep $STR1 file1|cut -c0-10)
  3. STRB=$(grep $STRA file2|cut -c0-10)
  4. echo $STRA,$STRB
Copy the Code
[/quote]
额 失误 STR1是字符串 STRB里引用的STRA是前面的变量 我脚本里是这样写的,但是运行的时候停顿了,无任何提示
把$STRA直接换成常量可以显示。。。。无解啊。。DOS里还有变量延迟 这边都不知道这种引用叫什么。。。
脚本显示的话 下次有时间我去实机试下 先谢了
Reply View the author
stephen
deepin
2011-11-04 18:55
#10
[quote]
如果STR1,STRA,STRB都是变量的话,那么在引用的时候都要加$,除非在等号左边。
  1. #!/bin/bash
  2. STRA=$(grep $STR1 file1|cut -c0-10)
  3. STRB=$(grep $STRA file2|cut -c0-10)
  4. echo $STRA,$STRB
Copy the Code
额 失误 STR1是字符串 STRB里引用的STRA是前面的变量 我脚本里是这样写的,但是运行的时候停顿了,无任何提示
把$STRA直接换成常量可以显示。。。。无解啊。。DOS里还有变量延迟 这边都不知道这种引用叫什么。。。
脚本显示的话 下次有时间我去实机试下 先谢了[/quote]

把你有问题的代码直接贴出来
Reply View the author
zxh17173
deepin
2011-11-04 19:08
#11
[quote][quote]
如果STR1,STRA,STRB都是变量的话,那么在引用的时候都要加$,除非在等号左边。
  1. #!/bin/bash
  2. STRA=$(grep $STR1 file1|cut -c0-10)
  3. STRB=$(grep $STRA file2|cut -c0-10)
  4. echo $STRA,$STRB
Copy the Code
额 失误 STR1是字符串 STRB里引用的STRA是前面的变量 我脚本里是这样写的,但是运行的时候停顿了,无任何提示
把$STRA直接换成常量可以显示。。。。无解啊。。DOS里还有变量延迟 这边都不知道这种引用叫什么。。。
脚本显示的话 下次有时间我去实机试下 先谢了[/quote]

把你有问题的代码直接贴出来[/quote]
我错了。。。。。。。一检查发现好多问题。。。连变量名都错了两个,
要不是让我贴代码还真看不出。。。。真心感谢
Reply View the author