我想在脚本中使用时间命令并将其放入变量中(我必须将它用于许多命令),这样我就可以只修改单个变量。
简单地说,这就是我尝试的方法:
PROFILING="/usr/bin/time -f 'time: %e - cpu: %P'" ; $PROFILING ls /usr
我希望它能被翻译成:
# /usr/bin/time -f 'time: %e - cpu: %P' ls /usr
bin games include lib local sbin share src
time: 0.00 - cpu: 0%
不过我得到这个:
/usr/bin/time: cannot run %e: No such file or directory
Command exited with non-zero status 127
'time:
有什么建议吗?
谢谢
答案1
分词不理解扩展变量中的引号。使用数组代替:
profiling=(/usr/bin/time -f 'time: %e - cpu: %P')
"${profiling[@]}" ls /usr
或者alias
:
shopt -s expand_aliases # needed in scripts
alias profiling="/usr/bin/time -f 'time: %e - cpu: %P'"
profiling ls /usr
或者函数:
profiling() { /usr/bin/time -f 'time: %e - cpu: %P' "$@"; }
profiling ls /usr