【发布时间】:2019-03-20 05:14:53
【问题描述】:
我无法找到这个问题的答案。 我在 xterm 中启动了三个用于演示自动化脚本的程序。我需要记录 xterm 窗口的结果。现在,我的脚本如下所示:
#!/bin/bash/sh
echo "NOTE - THIS PROCESS TAKES APPROXIMATELY 60 SECONDS TO RUN"
cd ~/myProject/ProgramOne
xterm -e ProgramOne progone.config 2>&1 /tmp/logs/p1.txt &
cd ~/myProject/ProgramTwo
xterm -e ProgramOne progtwo.config 2>&1 /tmp/logs/p2.txt &
cd ~/myProject/ProgramThree
xterm -e ProgramOne progthree.config 2>&1 /tmp/logs/p3.txt &
# allow the scripts to collect data
sleep 60
# kill the xterm sessions from running since this is just a demonstration
pkill -9 xterm
echo "******************************************"
echo "START PROGRAMS SCRIPT COMPLETE"
echo "******************************************"
我已验证 ~/myProject/ProgramOne 和 ~/myProject/ProgramTwo 和 ~/myProject/ProgramThree 都存在,/tmp/logs/* 也是如此
文件被创建,它们只是没有任何内容,也不包含 xterm 窗口的输出,我可以看到包含数百行信息的弹出窗口。
【问题讨论】:
-
无论如何我都看不出这条评论有什么建设性。
-
这意味着您显示的脚本与您正在运行的脚本不同(除非您出于某种原因实际上在
/bin/bash/sh有一个shell)。如果我们在您的代码中看到错误,我们无法判断它们是您正在运行的代码中的错误还是转录错误。最好将实际运行的代码复制并粘贴到问题中。见minimal reproducible example。 -
这是我的代码,一行一行,它在我的系统上为我运行。
-
你是如何调用它的?如果您以
sh script_name或bash script_name运行它,那么#!行将被忽略。如果你想在不指定使用哪个 shell 的情况下运行它,例如./script_name(这就是#!的全部意义),那么#!行是不正确的。 en.wikipedia.org/wiki/Shebang_(Unix) -
通过运行 ./script_name 与我目前的编写方式完美匹配。