测量脚本执行时间时的各种语法错误

测量脚本执行时间时的各种语法错误

我曾经使用 Cygwin (W10) 来测量脚本内的执行时间:

#!/bin/sh

(time {
sleep 1;
})

我现在已经转移到 Debian(Linux 的 Windows 子系统),相同的脚本给出了这个错误:

Syntax error: "}" unexpected (expecting ")")



我还在这里尝试了两个建议的脚本:https://askubuntu.com/a/431184但都失败了:

$ foo() {
    sleep 1;
    echo "Hello World"
  }
$ time foo
Hello World 

$ foo() {
    sleep 1;
    echo "Hello World"
  }
$ export -f foo
$ echo foo | /usr/bin/time /bin/bash
Hello World

具有相同的错误消息:

Syntax error: "(" unexpected


顺便说一句,我已经安装了/usr/bin/time

有人可以帮忙吗?

谢谢

编辑:根据要求,脚本很简单:

#!/bin/bash

(time {
sleep 1;
})

答案1

/bin/sh在 Cygwin 上可能是 bash 的符号链接,在 Debian 上它是破折号。在 bash 上,time是一个可以作用于 shell 命令行的关键字。 Dash 没有等效项,只有timeexternal /usr/bin/time,并且它的作用与关键字不在同一级别time,因此它不能在命令组上使用。

/bin/bash如果您要使用像关键字这样的 bashisms,请用于您的 shebang time

相关内容