Cygwin(W10)を使用してスクリプト内の実行時間を測定しました。
#!/bin/sh
(time {
sleep 1;
})
これでDebian(Linux用のWindowsサブシステム)に移動しましたが、同じスクリプトで次のエラーが発生します。
Syntax error: "}" unexpected (expecting ")")
また、ここで提案された2つのスクリプトを試しました。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
。