[英]Bash Awk division gets different results
我正在嘗試使用awk計算一些值,但除以100並使用linux命令getconf CLK_TCK會得到不同的結果。
在我的情況下,該命令始終返回100:
[centos@op5test1 ~]$ getconf CLK_TCK
100
現在,我嘗試使用上述命令輸出值來計算一些值。
[centos@op5test1 ~]$ echo 26178 4861 | awk '{print ($1+$2)/$(getconf CLK_TCK)}'
1.18569
現在給出值100
[centos@op5test1 ~]$ echo 26178 4861 | awk '{print ($1+$2)/100}'
310.39
為什么我會得到不同的值?
從命令行傳遞getconf
命令輸出的正確方法:
echo 26178 4861 | awk -v val=$(getconf CLK_TCK) '{print ($1+$2)/val}'
310.39
直接在awk
命令中使用時, $(getconf CLK_TCK)
評估為$0
,即26178 4861
,然后您可以有效地執行以下操作:
print ($1+$2)/$0
正在執行此算法:
(26178 + 4861)/26178 => 1.18569
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.