代码之家  ›  专栏  ›  技术社区  ›  Meltemi

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

  •  3
  • Meltemi  · 技术社区  · 14 年前

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

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

    1 回复  |  直到 14 年前
        1
  •  6
  •   Giacomo1968 Arvind    8 年前

    你就不能用puts/print吗?

    Shell命令

    无论如何,如果需要在发出任务的工作站中运行命令,应该使用backtick运算符。就连卡皮斯特拉诺的文件也推荐这样做。请参阅下面的“注意事项”部分 page .

    引用:

    运行帮助程序可能不适合运行不需要远程执行的命令。在这种情况下,使用倒勾(````)可能更合适。

    backtick运算符执行系统命令并将输出返回给您。例如,如果要执行 echo "this is my message" ,您可以: `echo "this is my message"`

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

    要打印,应使用: puts `echo "this is my message"`
    但这是多余的,你不妨直接调用puts或print。
    this link 有关在Ruby中执行shell命令的更多信息。

    放置和打印

    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" 而且要快乐。