当前位置: 首页 > 知识库问答 >
问题:

在脚本中启动并终止程序,然后继续[复制]

归俊
2023-03-14

我有一个脚本,需要启动一个程序,以便该程序创建和填充一些文件夹。在脚本继续之前,程序只需短暂运行,然后关闭。

但是,当程序被终止时,脚本不会继续。我该怎么做?

printf "before"

(timeout -sHUP 3s firefox)

printf "after"

我以为我是在子shell中启动程序,但我不确定是否是这样。

共有2个答案

白赞
2023-03-14

printf接受两个参数-一个格式字符串,然后是一个参数(即要输出的文本)。

当您调用printf“之前”时,您实际上是在传递一个没有参数的格式字符串,它没有正确显示。

最简单的修复方法是使用echo

echo "before"
timeout -sHUP 3s firefox
echo "after"

或者,如果您需要格式化,请改为执行例如:

printf "%s\n" "before"
timeout -sHUP 3s firefox
printf "%s\n" "after"
马坚
2023-03-14

我解决了这个问题。

set -o errexit

printf "before"

timeout -sHUP 3s firefox || true

printf "after"

另一种更清洁的方法

set -o errexit

printf "before"

set +e
timeout -sHUP 3s firefox
set -e

printf "after"
 类似资料:
  • 我想用python代码使用命令启动服务器,但主程序到此为止。 如何修改代码,让服务器启动,然后继续我的主程序代码。 这是我下面的python代码。 下面是我的控制台输出

  • 问题内容: 我是高级新手,请多多包涵。 我已经从另一位工程师那里继承了python脚本。为了方便起见,我希望能够从Windows bat文件启动脚本,但最初尝试通过从Windows命令行运行进行调试。 每当我从CMD启动脚本时,它似乎都可以启动,然后立即因错误而失败。 我的环境:Windows7 Pro和Windows10 Pro(发生相同的错误),Anaconda 3.7,Spyder 3.3.

  • 问题内容: 我有一个JavaScript代码,需要向其中添加睡眠/等待功能。我正在运行的代码已经在一个函数中,例如: 我听说可能的解决方案可能包括 但我不确定在这种情况下如何使用它。 我不能使用PHP,因为我的服务器不支持PHP,尽管使用jQuery可以。 问题答案: JS没有睡眠功能,它具有 setTimeout() 或setInterval() 函数。 如果您可以将暂停后需要运行的代码移到回调

  • 我正在使用2.2.3 我使用创建了一个非常简单的项目。 当我运行项目时,在选项卡中出现以下错误: 那么该怎么做才能防止这种过程杀熟呢?

  • 问题内容: 我知道中的命令会尽早停止脚本。 如何在Python中执行此操作? 问题答案: sys模块文档中的详细信息: 从Python退出。这是通过引发SystemExit异常来实现的,因此可以执行 try语句的finally子句指定的清除操作,并且有可能在外部级别拦截出口尝试。 可选参数arg可以是给出退出状态的整数(默认为零),也可以是其他类型的对象。如果它是整数,则shell等将零视为“成功

  • 目前,每当我在给我的冗长脚本上按下时,它会立即终止脚本(停止()