ユーザーにプロンプトにいくつかのデータを入力するように要求するコマンドを使用するスクリプトを作成しようとしています。
スクリプトに含めたいとしましょうgit push
。 (これが最善の方法ではないことを知っていますが、このように尋ねることが何であるかは誰もが理解するでしょう。)
git push
したがって、コンソールで使用するときにユーザー名とパスワードを要求します。git
シェルスクリプトから呼び出すときにそれを渡し、両方をシェル変数として保存するにはどうすればよいですか?
次のように見えます。
#!/bin/bash
git push
$user
$password
ベストアンサー1
最も簡単な方法は外部コマンドにパイプするようです。
printf "%s\n%s\n" "$user" "$password" |command_expects_username_and_password
$user
$password
これにより、後に改行文字が続く内容が出力され、出力がstdin
外部プロセスにリダイレクトされます。インタラクティブに呼び出す場合、ユーザーはその順序でユーザー名とパスワードを入力する必要があります。
もっと複雑な作業をしたい場合は、次のことを検討してください。予想されるスクリプト。
ノートKusalanandaが言ったように、stdin
これはプログラムが端末デバイスから直接ではなくこの情報を読み取る場合にのみ機能します(ただし、これは認証情報を要求するときに一般的なようです)、実際に適用するときは機能しませんgit
(あなたが次のように提供しました)。使用例)。