PHP tput:$ TERM没有值,没有指定-T

时间:2014-07-27 20:22:04

标签: php codeigniter shell exec tput

使用exec() function时出现以下错误:

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;
}

问题

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

1 个答案:

答案 0 :(得分: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;
}