Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 拉威尔特使和巴什提示_Bash_Laravel_Laravel Envoy - Fatal编程技术网

Bash 拉威尔特使和巴什提示

Bash 拉威尔特使和巴什提示,bash,laravel,laravel-envoy,Bash,Laravel,Laravel Envoy,我正在使用特使来配置远程服务器。配置是通过从私有repo中提取bash脚本,然后执行它来完成的 bash脚本会询问一些确认信息,比如yes/no(使用bash“read-p”):当我连接到远程服务器时,它会按预期工作。。。脚本将等待用户输入 相反,特使似乎忽视了任何提示。这是一种预期的行为吗 有什么解决办法吗?是的,这是意料之中的。没有任何东西可供读取读取,因此它不会 你有几个选择 当没有终端提示时,重写脚本以使用配置文件 使用类似于[-t0]的方法测试标准输入是否是终端,并加载带有默认值的配置

我正在使用特使来配置远程服务器。配置是通过从私有repo中提取bash脚本,然后执行它来完成的

bash脚本会询问一些确认信息,比如yes/no(使用bash“read-p”):当我连接到远程服务器时,它会按预期工作。。。脚本将等待用户输入

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


有什么解决办法吗?

是的,这是意料之中的。没有任何东西可供
读取
读取,因此它不会

你有几个选择

  • 当没有终端提示时,重写脚本以使用配置文件

    使用类似于
    [-t0]
    的方法测试标准输入是否是终端,并加载带有默认值的配置文件。最简单的方法就是创建一个包含适当变量赋值的文件,然后将其源代码
    。默认值.sh
    或其他任何值。如果您首先获取默认值,甚至不需要进行
    -t
    测试,因为用户输入的任何内容都会超过默认值

  • 重写脚本,使其具有正常的默认值


  • 重写运行脚本的内容,以通过重定向(例如
    printf'answer 1\nanswer 2\n'|/script.sh
    /script.sh)通过管道/文件提供您的脚本输入。谢谢您的解释Etan。您能提供第一个选项的示例吗?