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

Mel*_*emi 3 capistrano ruby-on-rails

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

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

Thi*_*ira 6

你不能只使用puts/print吗?

Shell命令

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

引用:

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

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

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

要打印它,你应该使用:puts `echo "this is my message"`
但这是多余的,你也可以直接调用put或print.
有关在Ruby中执行shell命令的更多信息,请参阅此链接.

放置和打印

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

puts "this is my message"
# or, depending on what you want
print "this is my message"
Run Code Online (Sandbox Code Playgroud)

puts就像print,但它在字符串的末尾添加了一个新行.这个:

puts "my message"
Run Code Online (Sandbox Code Playgroud)

与此相同:

print "my message\n"
Run Code Online (Sandbox Code Playgroud)

对于某些文档,请访问以下链接:

无论如何

只是使用puts "this is my message"和快乐.