0

ここを参照して、getopt入力オプションを処理するための my を記述します。

次のコマンドでスクリプトを実行します

$ tclsh t2.tcl -O /dir/o -B /dir/b  

望ましい結果:

/dir/o, /dir/o, /dir/b
Odir is /dir/o
/dir/o, /dir/o, /dir/b
Bdir is /dir/b 

しかし、私はこの間違った結果を得ました

/dir/o, /dir/o, /dir/b
err...
/dir/b, /dir/o, /dir/b
err...

はい、$arg(${i}), $arg(O), $arg(B)それらの値は問題ないようです。

しかし、ケースの状態に一致することはできません。

コードの何が問題になっていますか?


完全なコード

# filenat2.tcl
package require cmdline

set para {
  {O.arg "" "Output Dir"}
  {B.arg "" "Build Dir"}
}

array set arg [cmdline::getoptions argv ${para}]

set requiredParameters {O B}
foreach i ${requiredParameters} {
  if {$arg(${i}) == ""} {
    error "Missing required parameter: -${i}"
  } else {
    puts "$arg(${i}), $arg(O), $arg(B)" #check
    switch $arg(${i}) {
      $arg(O) {
        puts "Odir is $args(O)"
      }
      $arg(B) {
        puts "Bdir is $args(B)"
      }
      default {
        puts "err..."
      }
    }
  }
}

4

0 に答える 0