Dans 4 jours, je vais me faire massacrer tenter un examen interne au boulot, censé valider mes aptitudes de “programmeur système”. Cet examen comporte une épreuve de développement (sur papier, faut pas déconner), que la plupart des gens vont passer en Java ou C/C++. Mais très peu pour moi, j’attaque en Ruby !
Je lis donc des bouquins, qui présentent un squelette de shell en C. Et en Ruby ? Eh bien en fait, contre toute attente, c’est super simple, voici un squelette fonctionnel :
#!/usr/bin/ruby require 'readline' require 'open3' class Rshell def initialize loop do cmd = Readline.readline("$ ") exit if cmd.nil? or cmd == "exit" Open3.popen3(cmd) do |stdin,stdout,stderr| STDOUT.print stdout.read STDERR.print stderr.read end end end end Rshell.new
Il ne faut pas s’attendre à des miracles, aucun builtin, pas de gestion du PATH, mais on peut passer des commandes, différencier éventuellement STDOUT/STDERR pour le futur.
Ca me donne l’occasion de parler d’un vrai shell en Ruby, utilisé chez Heroku, Rush. J’en reparlerai dès que j’aurai testé ça au quotidien au boulot :)
Comments
There is 1 comment on this post. Post yours →
j"y crois pas
vraiment c’est pire que le chinois ton langage!!!
mais j’ai toujours eu une fierté et une confiance absolue en TOI.
alors ça va aller,puisque tu as fait ce qu’il te semblait bien……….
l’important c’est d’avancer,et j’aime l’idée de passer un examen ‘gratuitement’,comme la gemmologie ,pour ma part….
becs
Post a comment
Required fields in bold.