如何向发布Capistrano任务的工作站发送消息?

时间:2010-11-24 02:59:08

标签: ruby-on-rails capistrano

如果我从工作站执行cap deploy,如何在配方运行时指定要在工作站的控制台中显示的自定义反馈?

这让我感到困惑,因为Capistrano在部署机器(或服务器)上运行其“任务”,因此run 'echo "this is my message"'只会出现在服务器的控制台中。

1 个答案:

答案 0 :(得分:6)

你不能只使用puts / print吗?

Shell命令

无论如何,如果需要在发出任务的工作站中运行命令,则应使用反引号运算符。甚至Capistrano文档也推荐它。请参阅此page底部的“注意事项”部分。

引用:

  

运行助手可能不适合运行不需要远程执行的命令。在这种情况下,使用反引号(“`”)可能更合适。

反引号操作符执行系统命令并将输出返回给您。例如,如果您要执行echo "this is my message",则可以执行:`echo "this is my message"`

这将调用echo“系统命令”,并将输出返回"this is my message\n"。但它不会将它打印到控制台,这就是你想要的。

要打印它,您应该使用:puts `echo "this is my message"`
但这是多余的,你不妨直接打电话或打印 有关在Ruby中执行shell命令的更多信息,请参阅this link

放置并打印

Puts和print将消息输出到运行Ruby代码的控制台。这似乎是你想要实现的目标。在你的情况下,你应该这样做:

puts "this is my message"
# or, depending on what you want
print "this is my message"

putsprint类似,但它会在字符串末尾添加一个新行。这样:

puts "my message"

与此相同:

print "my message\n"

对于某些文档,请点击以下链接:

反正

只需使用puts "this is my message"即可开心。