24

mysqlがパスワードを要求したり、aptが「yes」を要求したりするなど、いくつかのプログラムによって促された質問への応答を自動化したいと思います。 。

MySQLの場合、-password =スイッチを使用でき、aptには「quiet」のようなオプションがあると確信しています。しかし、どうすれば他のプログラムに応答を渡すことができますか?

4

6 に答える 6

39

操作を確認するユーザーを探している場合は、confrimメソッドを使用します。

if fabric.contrib.console.confirm("You tests failed do you want to continue?"):
  #continue processing

または、ユーザーから入力を取得する方法を探している場合は、promptメソッドを使用します。

password = fabric.operations.prompt("What is your password?")
于 2010-02-11T17:50:29.110 に答える
13

なぜパイプだけが使えないのですか?

たとえば、自動自動受け入れの場合は、を使用します。yesこれは、の終わりのないストリームを出力するだけですy

yes | rm *.txt


(出典:wikimedia.org

于 2010-02-11T17:47:37.887 に答える
1

これらの両方の方法は有効であり、機能します。

デプロイメントシステムとのやり取りをしたくなかったので、最初のものを選択します。

だからここに私が使用した解決策があります:

% yes | ./manage.py rebuild_index

WARNING: This will irreparably remove EVERYTHING from your search index. Your choices after this are to restore from backups or rebuild via the rebuild_index command. Are you sure you wish to continue? [y/N] Removing all documents from your index because you said so. All documents removed. Indexing 27 Items.

于 2010-02-11T18:03:55.560 に答える
1

Fabricの開発バージョン(1.0a)は、リモートプログラムとの対話をサポートするようになりました。 http://docs.fabfile.org/1.0a/usage/interactivity.html

于 2011-02-15T10:05:00.923 に答える
0

遅い答えですが、これが同様の問題を抱えている人々に役立つことを願っています。

別のポイント:

  1. コンソールへ の2つ以上の異なる入力に答えます。
  2. パラレルモードのサポート。
  3. 含まれるすべてのタイプの入力yes/no/y/n

問題

[hostxxx] out: Type 'c' if you want to use the Commercial Edition.
[hostxxx] out: Type 'o' if you want to use the Open Source Edition.
[hostxxx] out: Type '3' to view the GNU General Public License version 3.
[hostxxx] out: Type 'L' to view the Lesser GNU General Public License version 2.1.
[hostxxx] out: Type 'yes' to accept this license offer.
[hostxxx] out: Type 'no' to decline this license offer.

解決:

printf代わりにを使用yesして柔軟性を追加しますが、これはparallelモードの魅力のように機能します。

@parallel
def demo_multi_input():
    run('printf "o\nyes\n"|./configure --prefix=/home/work/bin/qt')
于 2018-01-26T04:49:02.473 に答える
-1

このコードを使用します:

run("echo yes|./manage.py rebuild_index")
于 2017-09-29T10:42:41.900 に答える