Laravel Envoy和bash提示

时间:2015-11-04 12:37:35

标签: bash laravel laravel-envoy

我使用Envoy来配置远程服务器。通过从私有仓库中提取bash脚本然后执行它来完成配置。

bash脚本询问一些确认,例如是/否(使用bash"读取-p"):当我连接到远程服务器时,它按预期工作...脚本等待用户输入。

相反,特使似乎忽略了任何提示。这是预期的行为吗?

任何解决方法?

1 个答案:

答案 0 :(得分:3)

是的,这是预料之中的。 read没有任何内容可以读取,所以它没有。

您有几个选择。

  1. 当没有要提示的终端时,重写您的脚本以使用配置文件。

    使用类似[ -t 0 ]的内容来测试标准输入是否为终端并加载具有默认值的配置文件。最简单的方法是让一个文件包含适当的变量赋值,只需要它来源. defaults.sh或其他任何东西。如果您首先获取默认值,那么您甚至不需要进行-t测试,因为用户输入的内容将覆盖默认值。

  2. 重写您的脚本以获得合理的默认值。
  3. 重写运行脚本的任何内容,通过管道/文件通过重定向提供脚本输入(例如printf 'answer 1\nanswer 2\n' | ./script.sh./script.sh <answerfile)。