스크립트 실행 시간 측정 시 다양한 구문 오류 발생

스크립트 실행 시간 측정 시 다양한 구문 오류 발생

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/shCygwin에서는 bash에 대한 심볼릭 링크일 수 있지만 Debian에서는 dash입니다. Bash에서 time쉘 명령줄에 적용할 수 있는 키워드입니다. Dash에는 이에 상응하는 것이 없고 timeexternal 만 /usr/bin/time있으며 키워드와 동일한 수준에서 작동하지 않으므로 time명령 그룹에서는 사용할 수 없습니다.

/bin/bash키워드와 같은 bashism을 사용하려면 shebang에서 사용하세요 time.

관련 정보