只是尝试在脚本中进行一些基本检查...如果$argc不是1或2 则产生错误.
我试过了:
if { ( $argc != 1 ) || ( $argc != 2 ) } {
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
Run Code Online (Sandbox Code Playgroud)
和
if { ( $argc != 1 || $argc != 2 ) } {
puts "ERROR: \$argc should be either 1 or 2.\n"; exit 1
}
Run Code Online (Sandbox Code Playgroud)
等等
但无法使用任何括号/括号组合使其工作.
任何帮助将不胜感激.
这是基本逻辑.
您的示例将无效,因为2不等于1,因此第一个测试为真.
要否定OR连接,您否定每个测试并将OR更改为AND.你想要这种状态:
if { ( $argc == 1 ) || ( $argc == 2 ) } {
puts "ok"
} else {
puts "ng"
}
Run Code Online (Sandbox Code Playgroud)
所以使用:
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
}
Run Code Online (Sandbox Code Playgroud)
其他方式:
if {$argc ni {1 2}} { ... }
Run Code Online (Sandbox Code Playgroud)
即:如果 argc 的值不在包含 1 和 2 的列表中,...
操作员ni需要 Tcl 8.5 或更高版本。