echo
我正在编写一个CGI脚本来监视系统状态,因此必须使用或将信息输出到终端cat
。问题是,systat
这是一个交互式命令,因此它不会在屏幕上打印任何内容。
我尝试了systat | echo
和systat | cat
,但前者没有给出任何结果,而后者的行为与 相同systat
。
编辑
好吧,让我澄清一下。基本上,我要求一个 shell 脚本,比如monitor.sh
.当使用 执行时./monitor.sh
,它将启动一个新进程,输出 的结果systat
,然后退出。
它应该看起来像这样:
root@HPC:~/playground # ./monitor.sh
/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10
Load Average >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 12.0
/0% /10 /20 /30 /40 /50 /60 /70 /80 /90 /100
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root calc XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root@HPC:~/playground #
答案1
- “全局”命令解释器处理所有键盘输入。
- 这
quit
命令由“全局”命令解释器解释。它告诉systat
我们退出。- 这
quit
命令可以缩写为q
。
- 这
- 可以在命令行上提供“显示命令”,前面带有
-
。 (没有明确说明是否quit
符合“显示命令”的资格。)
所以,令人失望的是,这systat -q
不起作用。其他要尝试的事情:
systat -quit
(sleep 5; echo quit) | systat
- (您可能需要将其输入为
sh -c '(sleep 5; echo quit) | systat'
。) - 或者您可能需要执行
(sleep 5; echo :quit) | systat
或sh -c '(sleep 5; echo :quit) | systat'
。 (注意添加:
.)
- (您可能需要将其输入为
systat& sleep 5; kill "$!"
- (您可能需要将其输入为
sh -c 'systat& sleep 5; kill "$!"'
。)
- (您可能需要将其输入为
您可能需要调整睡眠时间才能获得您想要的结果。