Bash Awk部门获得了不同的结果

Stu*_*t78 1 linux bash awk

我正在尝试使用awk计算一些值.但是当用100除以并使用linux命令getconf CLK_TCK时,我得到不同的结果.

在我的情况下,命令总是返回100:

[centos@op5test1 ~]$ getconf CLK_TCK
100
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用上面的命令输出值计算一些值.

[centos@op5test1 ~]$ echo 26178 4861 | awk '{print ($1+$2)/$(getconf CLK_TCK)}'
1.18569
Run Code Online (Sandbox Code Playgroud)

现在给出100的价值

[centos@op5test1 ~]$ echo 26178 4861 | awk '{print ($1+$2)/100}'
310.39
Run Code Online (Sandbox Code Playgroud)

为什么我会得到不同的值?

anu*_*ava 5

getconf从命令行传递命令输出的正确方法:

echo 26178 4861 | awk -v val=$(getconf CLK_TCK) '{print ($1+$2)/val}'
310.39
Run Code Online (Sandbox Code Playgroud)

$(getconf CLK_TCK)直接在使用时,awk命令被评估为$026178 4861,你是那么切实做好:

print ($1+$2)/$0
Run Code Online (Sandbox Code Playgroud)

正在执行此算术:

(26178 + 4861)/26178 => 1.18569
Run Code Online (Sandbox Code Playgroud)