我创建了这个sh脚本,并且想要度量在这个程序上花费的时间:
#!/bin/bash
start=`date +%s`
cd nlu/creator
python3 move_file.py ../../../../../base_data/ ../../resources/kb/
python3 converter.py
python3 transformer.py
cd ../../resources/kb/
find . -name '*.xml' | xargs -I{} rm -rf {}
find . -name '*Object.txt' | xargs -I{} rm -rf {}
end =`date +%s`
runtime=$((end-start))
echo "Building time: ${runtime}"
我执行:
nlu/creator/builder.sh
错误信息是:
nlu/creator/builder.sh: line 15: end: command not found
Building time: -1651032434
为什么报错'end:command not found'?
还有,为什么时间是负数?我用的是Mac电脑。
为什么会抱怨?
这是一般的shell脚本语法:
一般情况下,P X Y
运行命令P
,带两个参数X
和Y
。类似地,end = something
运行命令end
,带两个参数=
和something
。
赋值由VAR=VALUE
完成,例如
end=something
如果你有一天需要执行一个名为end=something
的命令(即不将其视为赋值),你仍然可以通过写
'end=something'
BTW:如果您只对知道时间感兴趣,并且对时间打印的特定格式不挑剔,您也可以完全从脚本中删除时间计算,并使用内置的time
运行脚本:
time nlu/creator/builder.sh
试试吧!