我有一个类似这样的小bash脚本:
#!/bin/bash
TIME_CMD='/usr/bin/time -f "%E execution time"'
${TIME_CMD} ls
唯一的问题是:不起作用:
/usr/bin/time: cannot run execution: No such file or directory
Command exited with non-zero status 127
"0:00.00
我做错了什么?
我有一个类似这样的小bash脚本:
#!/bin/bash
TIME_CMD='/usr/bin/time -f "%E execution time"'
${TIME_CMD} ls
唯一的问题是:不起作用:
/usr/bin/time: cannot run execution: No such file or directory
Command exited with non-zero status 127
"0:00.00
我做错了什么?
尝试将它...
#!/bin/bash
TIME_CMD='/usr/bin/time -f "%E execution time"'
eval "$TIME_CMD ls"
eval $TIME_CMD ls
相比,这是一种重型执行方式。 - Jonathan Lefflerbash -c
的指令,而不是已经在bash中的情况下。 :) - Ambereval
这样的东西运行它,这可能会导致其他解析异常)。alias TIME_CMD='/usr/bin/time -f "%E execution time"'
TIME_CMD ls
其次,您可以使用一个函数:
TIME_CMD() { /usr/bin/time -f "%E execution time" "$@"; }
TIME_CMD ls
第三,你可以使用数组而不是简单的变量:
TIME_CMD=(/usr/bin/time -f "%E execution time")
"${TIME_CMD[@]}" ls
"${array[@]}"
这个用法扩展它以正确保留单词间的空格。
argv[] = { "/usr/bin/time", "-f", "\"%E", "execution", "time\"" }
来fork
一个进程。但是我不知道如何正确转义语法。 - aschepler