只是尝试在脚本中执行一些基本检查...如果$argc
不是1或2,则会产生错误。
我试过了:
if { ( $argc != 1 ) || ( $argc != 2 ) } {
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
和
if { ( $argc != 1 || $argc != 2 ) } {
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
等
但无法使用任何括号/括号组合使其工作。
非常感谢任何帮助。
答案 0 :(得分:5)
这是基本逻辑。
你的例子不会起作用,因为2不等于1所以第一次测试是真的。
要取消OR连接,否定每个测试并将OR更改为AND。 你想要这种状态:
if { ( $argc == 1 ) || ( $argc == 2 ) } {
puts "ok"
} else {
puts "ng"
}
所以使用:
if { ( $argc != 1 ) && ( $argc != 2 ) } {
# i.e. if $argc is either anything other than a 1 or a 2...
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
答案 1 :(得分:3)
另一种方式:
if {$argc ni {1 2}} { ... }
即:如果argc的值不在包含1和2的列表中,......
ni
运算符需要Tcl 8.5或更高版本。
文档: if, ni (operator)