ñ╧ñ╕ñßñ╦

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ñ╟╜¬╬╗ñ╣ñδíú

*2

Ñ╒ÑΘÑ░ñ╬└▀─Ω

─╠╛∩íóѬÑ╫Ñ╖ÑτÑ≤Ñ╣ÑñÑ├Ñ┴ñ¼╗╪─Ωñ╡ñ∞ñ┐╛∞╣τñ╧▓┐ñΘñ½ñ╬Ñ╒ÑΘÑ░*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ñ¼Ñ╗Ñ├Ñ╚ñ╡ñ∞ñδñ│ñ╚ñ╦ñ╩ñδíú

Ñ╒ÑΘÑ░ñ╬ on/off

Ñ╒ÑΘÑ░ñ╬╗╪─Ωñ≥╝ΦñΩ╛├ñ╣ñΦñªñ╦ñ╣ñδñ│ñ╚ñΓñ╟ñ¡ñδíú

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Ñ░Ñφí╝Ñ╨Ñδ╩╤┐⌠ñ¼╗╚ñ∩ñ∞ñδñ│ñ╚ñΓ┬┐ññ