OptionParser ñ╧Ñ│Ñ▐Ñ≤Ñ╔ÑΘÑñÑ≤░·┐⌠ñ╬ѬÑ╫Ñ╖ÑτÑ≤ñ╬▓≥└╧ñ≥┤╩├▒ñ╦╣╘ñªñ┐ñßñ╬Ñ»ÑΘÑ╣ñ╟ñóñδíú
Ñ│Ñ▐Ñ≤Ñ╔ÑΘÑñÑ≤░·┐⌠ñ╬▓≥└╧ñ╚ñññªñ╬ñ╧íóñ└ñññ┐ñññ╔ñ≤ñ╩Ñ─í╝Ñδñ╟ñΓñ█ñ╚ñ≤ñ╔╞▒ñ╕Ñ╤Ñ┐í╝Ñ≤ñ¼╔¼═╫ñ╦ñ╩ñδíú ñ╜ñ╖ñ╞ñ│ñ∞ñ╦ñ╧ñññ»ñ─ñ½ñ╬╬«╡╖ñ╬ñΦñªñ╩ñΓñ╬ñ¼ñóñδíú
Unix ╛σñ╬Ñ─í╝Ñδñ╬ѬÑ╫Ñ╖ÑτÑ≤Ñ╣ÑñÑ├Ñ┴ñ╧íó┼┴┼²┼¬ñ╦-
ñ╦┬│ñ»▒╤╗·░∞╩╕╗·ñ╟╗╪─Ωñ╡ñ∞ñδíú
ñ│ñ∞ñ╧─╠╛∩╩ú┐⌠ñ╬ñΓñ╬ñ≥┬│ñ▒ñ╞╗╪─Ωñ╣ñδñ│ñ╚ñΓñ╟ñ¡ñδíú
╬πñ¿ñ╨ls
Ñ│Ñ▐Ñ≤Ñ╔ñ╩ñΘíó╝íñ╬ú▓ñ─ñ╧╞▒ñ╕╞░║εñ≥ñ╣ñδíú
ls -l -a ls -la
ñ▐ñ┐íó║╟╢ßñ╬ GNU tools ñ╩ñ╔ñ╧ --
ñ╟╗╧ñ▐ñδ─╣ññ╠╛┴░ñ╬Ñ╣ÑñÑ├Ñ┴ñΓ╗╚ñ¿ñδíú
ls --all
OptionParserñ╧ñ│ñ╬╬╛╩²ñ╬╖┴╝░ñ≥Ñ╡Ñ▌í╝Ñ╚ñ╣ñδíú ñΓñ┴ñφñ≤║«ñ╝ñ╞╗╚ñªñ│ñ╚ñΓ▓─╟╜íú
require 'optparse' ARGV.options {|q| q.def_option('--help', 'show this message') {puts q; exit(0)} # <- (1) q.parse! } or exit(1)
ñ│ñ∞ñ└ñ▒ñ╟íó--helpíó--hELpíó--hElíó--HEíó --h ñ╩ñ╔ñ╬─╣╖┴╝░ñ╬Ñ╣ÑñÑ├Ñ┴*1ñ╦▓├ñ¿ñ╞íó-hñ╚ñññª├╗╖┴╝░ñ╬ѬÑ╫Ñ╖ÑτÑ≤Ñ╣ÑñÑ├Ñ┴ñ¼╗╚ñ¿ñδñΦñªñ╦ñ╩ñδíú OptionParserñ╟ñ╧íó├╗╖┴╝░ñ╬Ñ╣ÑñÑ├Ñ┴ñ¼╕½╔╒ñ½ñΘñ╩ñ½ñ├ñ┐╛∞╣τíó╝½╞░┼¬ñ╦─╣╖┴╝░ñ╬╛╩╬¼╖┴ñ╚ñ▀ñ╩ñ╣ñ┐ñßñ└íú
ñ│ñ╬Ñ╣Ñ»ÑΩÑ╫Ñ╚ñ╦┬╨ñ╖ñ╞--helpÑ╣ÑñÑ├Ñ┴ñ≥╗╪─Ωñ╣ñδñ╚íó(1)ñ╬Ñ╓ÑφÑ├Ñ»ñ¼╝┬╣╘ñ╡ñ∞ñδíú
puts q
ñ╚ñññªñ╬ñ╧íó╗╪─Ωñ╟ñ¡ñδѬÑ╫Ñ╖ÑτÑ≤ñ╬░∞═≈ñ≥╔╜╝¿ñ╣ñδñ│ñ╚ñ≥░╒╠úñ╣ñδíú
└╡ñ╖ñ»ñ╩ññÑ╣ÑñÑ├Ñ┴ñ≥╗╪─Ωñ╡ñ∞ñ┐ñ╚ñ¡ñ╦ñ╧íóÑ¿ÑΘí╝ÑßÑ├Ñ╗í╝Ñ╕ñ≥STDERR
ñ╦╔╜╝¿ñ╖ñ╞╜¬╬╗Ñ│í╝Ñ╔1ñ╟╜¬╬╗ñ╣ñδíú
─╠╛∩íóѬÑ╫Ñ╖ÑτÑ≤Ñ╣ÑñÑ├Ñ┴ñ¼╗╪─Ωñ╡ñ∞ñ┐╛∞╣τñ╧▓┐ñΘñ½ñ╬Ñ╒ÑΘÑ░*3ñ╩ñ╔ñ≥Ñ╗Ñ├Ñ╚ñ╖ñ╞ñ¬ñññ╞íóñóñ╚ñ╟╗▓╛╚ñ╟ñ¡ñδñΦñªñ╦ñ╣ñδíú
require 'optparse' $verbose = false ARGV.options {|q| q.def_option('-v', '--verbose', 'run verbosely') {$verbose = true} q.parse! } or exit(1) puts "verbose=#$verbose"
ñ│ñ∞ñ╟íó--verboseñΣ-Vñ╩ñ╔ñ╚╗╪─Ωñ╡ñ∞ñ∞ñ╨íó(1)ñ╬Ñ╓ÑφÑ├Ñ»ñ¼╝┬╣╘ñ╡ñ∞ñ╞
$verboseñ╦ñ╧true
ñ¼Ñ╗Ñ├Ñ╚ñ╡ñ∞ñδñ│ñ╚ñ╦ñ╩ñδíú
Ñ╒ÑΘÑ░ñ╬╗╪─Ωñ≥╝ΦñΩ╛├ñ╣ñΦñªñ╦ñ╣ñδñ│ñ╚ñΓñ╟ñ¡ñδíú
require 'optparse' $verbose = false ARGV.options {|q| q.def_option('-v', '--[no-]verbose', 'run verbosely') {|$verbose|} q.parse! } or exit(1) puts "verbose=#$verbose"
--verboseñ╦[no-]ñ╚ñññªñ╬ñ¼╔╒ñññ╞ñññδñ¼íóñ│ñ∞ñ╧╚▌─Ω╖┴ñ¼╗╚ñ¿ñδñ│ñ╚ñ≥░╒╠úñ╖ñ╞ñññδíú
--no-verboseñ╚╗╪─Ωñ╡ñ∞ñ∞ñ╨íó$verboseñ╦ñ╧false
ñ¼Ñ╗Ñ├Ñ╚ñ╡ñ∞ñδíú
require 'optparse' $execute = true ARGV.options {|q| q.def_option('-v', '--[no-]verbose', 'run verbosely') {|$verbose|} q.def_option('-n', '--no-execute', 'not actually run') {|$execute|} q.parse! } or exit(1) puts "verbose=#$verbose" puts "execute=#$execute"
╝íñ╬--no-executeñ╟ñ╧íó[no-]ñ╬┬╪ñ∩ñΩñ╦no-ñ╚ñ╩ñ├ñ╞ñññδíú
ñ│ñ╬░πñññ╧íóñ╔ñ┴ñΘñ¼Ñ╟Ñ╒Ñ⌐ÑδÑ╚ñ╦ñ╩ñ├ñ╞ñññδñ½íóñ─ñ▐ñΩ├╗╖┴╝░ñ¼╣╬─Ω╖┴ñ½╚▌─Ω╖┴ñ½ñ╚ñññªñ│ñ╚ñ└íú
[]╔╒ñ¡ñ╬╛∞╣τñ╧╣╬─Ω╖┴íó╔╒ñññ╞ñññ╩ññ╛∞╣τñ╧╚▌─Ω╖┴ñ¼Ñ╟Ñ╒Ñ⌐ÑδÑ╚ñ╦ñ╩ñδíú
ñ─ñ▐ñΩíó├▒ñ╦-vñ╚╗╪─Ωñ╡ñ∞ñ┐ñ╚ñ¡ñ╧$verboseñ╧true
ñ╦ñ╩ñδñ¼íó
-nñ╩ñΘ$executeñ╦ñ╧false
ñ¼Ñ╗Ñ├Ñ╚ñ╡ñ∞ñδíú
*1─╣╖┴╝░ñ╬Ñ╣ÑñÑ├Ñ┴ñ╦┬╨ñ╖ñ╞ñ╧┬τ╩╕╗·╛«╩╕╗·ñ╧╢Φ╩╠ñ╖ñ╩ññ
*2def_option
ñ╚ñññªñ╬ñ╧╕┼ññÑ╨í╝Ñ╕ÑτÑ≤ñ╟ñ╧╗╚ñ¿ñ╩ññíú
┬╪ñ∩ñΩñ╦on
ñ≥╗╚ñªíú
*3Ñ░Ñφí╝Ñ╨Ñδ╩╤┐⌠ñ¼╗╚ñ∩ñ∞ñδñ│ñ╚ñΓ┬┐ññ