2017-08-31 199 views
0

我想在导入脚本上放一个超时。超时命令 - 来自shell脚本的echo输出

使用timeout时,导入脚本不会通过loadImport.sh输出。这很麻烦,因为loadImport.sh是由ph​​p文件加载的脚本,因此没有看到输出。

第一个脚本loadImport.sh加载导入脚本doImport.sh超时。

loadImport.sh

#!/bin/bash 

IMPORTLOG='/usr/local/bin/import.log' 
DBNAME=$1 

timeout --kill-after=90s 60s sudo ./doImport.sh $DBNAME 
if (($? == 124)); then 
    echo "Import timed out" | tee -a $IMPORTLOG 
    exit 124 
fi 

我如何从doImport.sh与线timeout --kill-after=90s 60s sudo ./doImport.sh $DBNAME输出?

+0

你是什么意思“得到的输出?”你想要它在一个文件或一个变量? –

+0

这里没有必要'tee'; 'echo“导入超时”>>“$ IMPORTLOG”'。 – chepner

+0

您使用的是什么版本的'timeout',有'--kill-after'选项? – chepner

回答

0

source解决了我的问题。

我用错了第一个因为与sudo结合它必须这样使用sudo -s

改变我的脚本是这样的: timeout --kill-after=90s 60s sudo -s ./doImport.sh $DBNAME 他回答