如果我从工作站执行cap deploy
,如何在配方运行时指定要在工作站的控制台中显示的自定义反馈?
这让我感到困惑,因为Capistrano在部署机器(或服务器)上运行其“任务”,因此run 'echo "this is my message"'
只会出现在服务器的控制台中。
答案 0 :(得分:6)
你不能只使用puts / print吗?
无论如何,如果需要在发出任务的工作站中运行命令,则应使用反引号运算符。甚至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"
puts
与print
类似,但它会在字符串末尾添加一个新行。这样:
puts "my message"
与此相同:
print "my message\n"
对于某些文档,请点击以下链接:
只需使用puts "this is my message"
即可开心。