使用屏幕查看脚本的输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用屏幕查看脚本的输出相关的知识,希望对你有一定的参考价值。

我正在尝试同时在分离的屏幕会话中运行多个脚本。

这是我目前的代码。

#!/bin/bash
screen -mdS Name_Screen1 "python /path/to/file/file.py arg1 arg2 arg3"
screen -mdS Name_Screen2 "python /path/to/file/file.py arg3 arg4 arg5"
screen -mdS Name_Screen3 "python /path/to/file/file.py arg6 arg7 arg8"

当键入“screen -list”以查看可用的屏幕时,我看不到我正在运行的任何屏幕。此脚本将一些信息输出到屏幕,这取决于给出的参数。我已经查看了这里发布的一些问题,但我找不到答案。

有什么方法可以看到这些屏幕的输出,而不必做“> out.txt”之类的事情吗?

更新

所以我终于明白了。我最终在会话中创建了一个屏幕会话和多个窗口。

#!/bin/sh
Lum_Types=("Window1" "Window2" "Window3" )
Windowname="Screen_session"
screen -mdS $Windowname
for Lum in ${Lum_Types[@]}
do
    screen -S $Windowname -X screen -t $Lum
    screen -S $Windowname -p $Lum -X stuff $"python /Path/to/file arg1 arg2"
    screen -S $Windowname -p $Lum -X stuff $'
'
done

一个关键部分是在$之后添加-X stuff,以便将字符串传递给屏幕会话和窗口。

答案

所以我终于明白了。我最终在会话中创建了一个屏幕会话和多个窗口。

#!/bin/sh
Lum_Types=("Window1" "Window2" "Window3" )
Windowname="Screen_session"
screen -mdS $Windowname
for Lum in ${Lum_Types[@]}
do
    screen -S $Windowname -X screen -t $Lum
    screen -S $Windowname -p $Lum -X stuff $"python /Path/to/file arg1 arg2"
    screen -S $Windowname -p $Lum -X stuff $'
'
done

一个关键部分是在$之后添加-X stuff,以便将字符串传递给屏幕会话和窗口。

- 维克多

另一答案

您需要做的就是将命令的单词分开。

screen -mdS "Name_Screen1" python /path/to/file/file.py "arg1" "arg2" "arg3"

将它们分组在单个字符串屏幕中将不会执行它们,它只是立即退出,这就是它们不在列表中显示的原因。

以上是关于使用屏幕查看脚本的输出的主要内容,如果未能解决你的问题,请参考以下文章

支持动态或静态片段的不同屏幕尺寸?

隐藏子屏幕/片段的android底部导航视图

处理屏幕旋转上的片段重复(带有示例代码)

如何在 Perl 中从 telnet 屏幕抓取输出?

如何在屏幕方向更改时附加片段?

Shell脚本之循环语句(forwhileuntil)