sh:未找到时间命令

sh:未找到时间命令

在 llvm 3.0 测试套件中,我在 bash 上收到以下错误:

sh: time command not found

代码如下:

if [ "x$RHOST" = x ] ; then
  ( sh -c "$ULIMITCMD $TIMEIT -p sh -c '$COMMAND >$OUTFILE 2>&1 < $INFILE; echo exit \$?'" ) 2>&1 \
| awk -- '\
BEGIN     { cpu = 0.0; }
/^user/   { cpu += $2; print; }
!/^user/  { print; }
END       { printf("program %f\n", cpu); }' > $OUTFILE.time

在哪里$TIMEIT = time

我尝试更改sh -ceval错误仍然存​​在。

在尝试解决此错误时,我注意到一些有趣的事情,可能会或可能不会帮助解决这个问题:

跑步sh -c "time"可以但sh -c "time -p"不行。

你们有人知道为什么会发生此错误吗?我该如何解决它?

答案1

time是 shell 中的保留字。要使用实际命令,请尝试:

command time [options] [command]

或者:

/usr/bin/time [options] [command]

来源:

答案2

该程序由软件包提供time
例如,像这样安装它:

apt-get install time

这个答案体现了乔恩哈坦

笔记:

当我使用 GitHub Actions 和使用 的脚本时,我发现这个修复很有用time -p。所以我在yml文件中执行了此操作:

      - name: Install other packages
        run: |
          apt-get update
          
          # `time -p` is used for benchmarking tests.
          # This fixes error: 'sh: 1: time: not found':
          apt-get install time
      - name: Set up test database and run tests
        run: |
          script_with_time.sh

相关内容