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에서는 dash입니다. Bash에서 time
쉘 명령줄에 적용할 수 있는 키워드입니다. Dash에는 이에 상응하는 것이 없고 time
external 만 /usr/bin/time
있으며 키워드와 동일한 수준에서 작동하지 않으므로 time
명령 그룹에서는 사용할 수 없습니다.
/bin/bash
키워드와 같은 bashism을 사용하려면 shebang에서 사용하세요 time
.