1

パスワードを暗号化し、パスワードハッシュを復号化するコマンドラインアプリを作成しています。Getoptのドキュメントには例が記載されていないため、Getoptクラスの使用方法がわかりません。いくつかの手がかりがメーリングリストのログに散らばっています。

with: pattern特に、の形式、 CLI引数を指定する文字列、値が必須か、オプションか、省略かはわかりません。

ios7crypt.st:

"exec" "gst" "-f" "$0" "$0" "$@"
"exit"

| args password hash |

"Drop the program name."
"The shebang joins the arguments; we must split them."
args := (Smalltalk getArgv: 2) substrings: $ .

args do: [ :arg | Transcript show: 'Raw arg: ', arg; cr. ].

Getopt parse: args with: '-e: -d: -t' do: [ :opt :arg |
    Transcript show: 'Opt: ', (opt asString), ' Arg: ', arg; cr.

    "..."
].

実行例:

$ ./ios7crypt.st -e monkey
Raw arg: -e
Raw arg: monkey
Opt: e Arg: monkey

以前は、-eとの両方monkeyがスクリプトに渡されましたが、Getoptはdo:サイレントにドロップ-eしたため、出力は次のようになりました。

$ ./ios7crypt.st -e monkey
Raw arg: -e
Raw arg: monkey
Opt:  Arg: monkey
4

1 に答える 1

1

デバッグ時には #printString を使用することをお勧めします。これはプログラマ向けの表現を提供します (#displayString とは対照的に)。

ところで、引数が結合されないように、シバン呼び出しで「$ @」を使用できます。

于 2011-08-24T10:55:07.947 に答える