簡體   English   中英

Bash Awk部門獲得了不同的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM