2

使用该exec()功能时出现以下错误:

string(25) "/etc/init.d/mast list-log" 
array(1) { [0]=> string(44) "tput: No value for $TERM and no -T specified" } 
tput: No value for $TERM and no -T specified

我的命令/etc/init.d/mast list-log在重新启动之前一直在工作。我看不出有什么区别。

源代码

public static function execute($_ = null, $debug=true) {
    $_ = $debug ? $_." 2>&1"  : $_;
    exec("$_ | aha --word-wrap --no-header", $output, $exitCode);
    return $output;
}

问题

你对如何解决这个问题有什么建议吗?

4

1 回答 1

1

在 shell 中,您可以设置一个具有以下命令生命周期的环境变量,如下所示:

TERM=screen-256color ls -l --color=always

TERM=screen-256color环境变量和ls -l --color=always命令在哪里。

解决方案

这是我修改后的代码,我只是TERM=screen-256color在我的命令前添加:

public static function execute($_ = null, $debug=true) {
    $_ = $debug ? $_." 2>&1"  : $_;
    exec("TERM=screen-256color $_ | aha --word-wrap --no-header", $output, $exitCode);
    return $output;
}
于 2014-07-27T20:28:17.343 回答