使用 exec 从 tcl 文件中获取 运行 时统计缺少操作数错误

stat missing operand error when run from tcl file using exec

我在 script.tcl 中有以下内容:

#!/usr/bin/env tclsh
set disk(free) [exec -- stat -f -c 'scale=3;(%a*%S)/1024/1024/1024' / | bc ]

当我执行脚本时,我得到以下输出:(翻译自匈牙利语)

stat: missing operand
For more information execute the „stat --help” command.
    while executing
"exec -- stat -f -c 'scale=3"
    invoked from within
"set disk(free) [exec -- stat -f -c 'scale=3;(%a*%S)/1024/1024/1024' / | bc ]"
    (file "~/script.tcl" line 2)

我做错了什么? 运行命令本身就可以正常工作。

你必须用括号括住你的表达式而不是单引号。

% exec stat -f -c {scale=3;(%a*%S)/1024/1024/1024} / | bc
137.916
%