86 votes

Exécuter des commandes bash à partir d'un Rakefile

Je voudrais exécuter un certain nombre de commandes bash partir d'un Rakefile .

J'ai essayé ce qui suit dans mon Rakefile

 task :hello do
  %{echo "World!"}
end

mais lors de l'exécution de rake hello il n'y a pas de sortie ? Comment exécuter des commandes bash à partir d'un Rakefile ?

REMARQUE : ce n'est pas un doublon car il demande spécifiquement comment exécuter des commandes bash à partir d'un Rakefile .

142voto

Gizmomogwai Points 886

Je pense que la façon dont rake veut que cela se produise est avec: http://rubydoc.info/gems/rake/FileUtils#sh-instance_method Exemple:

 task :test do
  sh "ls"
end

La fonction rake intégrée sh prend en charge la valeur de retour de la commande (la tâche échoue si la commande a une valeur de retour autre que 0) et en plus elle génère également la sortie des commandes.

6voto

knut Points 10107

%{echo "World!"} définit une chaîne. Je suppose que vous vouliez %x{echo "World!"} .

%x{echo "World!"} exécute la commande et renvoie la sortie (stdout). Vous ne verrez pas le résultat. Mais vous pouvez faire :

 puts %x{echo "World!"}

Il existe d'autres façons d'appeler une commande système :

  • Backticks : `
  • system( cmd )
  • popen
  • Open3#popen3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X