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

相關內容