【发布时间】:2017-08-11 20:53:27
【问题描述】:
我有一个 bash 脚本,比如说 foo.sh,在这个最小的例子中看起来像这样:
#!/bin/bash
function __measure_time {
time "$@"
}
__measure_time "$*"
我现在要做的是将两个命令传递给这个脚本,这些命令应该一个接一个地运行,我想测量时间。所以基本上我正在做类似的事情:
./foo.sh bash -c "echo 'ss' && sleep 1"
但这并不像我想要的那样工作。我没有从回声中得到“ss”,睡眠基本上被忽略了。有没有办法让这个工作?
【问题讨论】:
-
对我来说这很好用。我对该命令所做的唯一编辑是在它前面加上'./'。所以应该是
./foo.sh bash -c "echo ss && sleep 1" -
确实,看起来我得到的脚本比我想象的要复杂一行。我完全忽略了在调用时间之前有一个函数调用。它不是我的,但我正在尝试使用它。将添加代码。
-
时间用于计时脚本的执行,而不是大量命令。也就是说,时间不会接受多个命令作为参数。
-
我很清楚时间只需要一个参数。因此,我试图用 bash -c "..." 构造来欺骗它。然而,当通过所描述的脚本调用它时它不起作用,但当我在它自己的 shell 中运行它时完全没问题。我当然可以在脚本中编写这两个命令并随着时间的推移调用它,但希望避免有额外的文件
标签: bash parameter-passing timing