4

次のことを行う単純な Ruby スクリプトを作成するタスクがあります。

dirUNIX コマンド ラインから実行すると、" "、" "、" help"などの特定のコマンドを実行できるプロンプトがユーザーに表示されますexit。" exit" で、ユーザーは Unix シェルに戻る必要があります。

私は解決策を求めているわけではありません。この「シェル」機能を Ruby で実装する方法を知りたいだけです。ユーザーにどのようにプロンプ​​トを表示し、コマンドを解釈しますか。

引数を取る CLI スクリプトは必要ありません。シェル インターフェイスを作成するものが必要です。

4

5 に答える 5

1

これは本当に基本的なループです:

#!/user/bin/ruby
#
while true do
  print "$ "
  $stdout.flush
  inputs = gets.strip
  puts "got your input: #{inputs}"
  # Check for termination, like if they type in 'exit' or whatever...
  # Run "system" on inputs like 'dir' or whatever...
end

Stefan がコメントで述べたように、これは大きなトピックであり、これを複雑にするシナリオがあります。私が言うように、これは非常に基本的な例です。

于 2013-06-08T14:32:40.413 に答える
1

irbを使用します。私はbashの代替案を検討していて、同じ方針に沿って考えていました...しかし、を選択することになりました: http://fishshell.com/

それにもかかわらず、私はirbを使用してirbtoolsのラインに沿って進むことを考えていました: https://github.com/janlelis/irbtools

例:

> irb
Welcome to IRB. You are using ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]. Have fun ;)
>> ls #=> ["bin", "share", "opt", "lib", "var", "etc", "src"]
>>

いずれにせよ、irbは ruby​​ シェルです。

于 2013-06-08T17:50:59.630 に答える
-1

カスタム シェルhttps://github.com/anshulverma/cliqr/cliqrをビルドするためのサポートが組み込まれているものをご覧ください。

于 2015-06-26T17:57:52.457 に答える