条件运算符中的近引号后的额外字符

时间:2016-02-04 08:33:11

标签: tcl

我正在使用一个条件运算符,但收到错误“close-quote后的额外字符”。 fdx是我试图通过函数参数传递的参数,我正在检查传递的参数是否为“fdx”,并且基于此将决定要写入的值。

    proc set_ifg_seville2 {port sgmii speed fdx} {
   case $speed {
    10 {
        erf_wr -s dev_$port mac_ifg_cfg tx_ifg [expr ($fdx == "fdx") ? 5:4]

      }

    } #Closing procedure

1 个答案:

答案 0 :(得分:3)

代码中三元操作的表达式应更改为

erf_wr -s dev_$port mac_ifg_cfg tx_ifg [expr {$fdx == "fdx" ? 5:4}]

示例:

% set fdx "fdx"
fdx
% set result [expr {$fdx=="fdx" ? "pass" : "fail" }]
pass
% set result [expr {$fdx=="stackoverflow" ? "pass" : "fail" }]
fail
%

参考: expr