我正在使用一个条件运算符,但收到错误“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
答案 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