(セントOS 7)
このようなカールコマンドを試してみると、curl -u elastic -X GET 'http://localhost:9200/*' | more
1文字だけを入力した後にEnterキーを押したかのようにコマンドが実行され、認証に失敗することがわかりました。
これは普通ですか?
ファイルにリダイレクトしたり、上にスクロールしたり、wgetを使用したり(まだ試していない)コマンドにパスワードを入力したりできますが、ここで何が起こっているのかを知りたいです。
ベストアンサー1
問題は、curl
とがmore
同時に同じTTYから読み取ることです。また、すべてTTY設定を変更できます。curl
入力したパスワードは画面に表示しないでください。more
これは基本的な行ベースの入力ではなく文字ベースの入力が必要なためです。
これが発生しないようにするには、コマンドが出力の生成を開始するmore
までコマンドの開始を遅らせることができると思います。curl
私はこれを行う標準コマンドがわかりませんが、2行のPythonコードで実行できます。
#!/usr/bin/python
import select
select.select([0], [], [])
上記のPythonスクリプトを使用して、元のコマンドを次のように変換できます。
curl -u elastic -X GET 'http://localhost:9200/*' | ( ./wait.py ; more )