我正在编写一个命令行应用程序来加密密码和解密密码哈希。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:
静默 drop -e
,所以输出看起来像:
$ ./ios7crypt.st -e monkey
Raw arg: -e
Raw arg: monkey
Opt: Arg: monkey