logo

ユーザー入力の読み取り

このトピックでは、端末とスクリプトからユーザー入力を読み取る方法を学習します。

Bash ユーザー入力を読み取るには、組み込みの Bash コマンドを使用します。 読む 。ユーザーからの入力を受け取り、それを変数に割り当てます。 Bash シェルからは 1 行だけを読み取ります。以下はその実装の構文です。

構文

 read 

指定された例に従って、Bash スクリプトからユーザー入力を読み取ります。

例 1:

この例では、read コマンドを使用して、Bash スクリプトから単一変数と複数変数の両方を読み取ります。

プログラム:

 #!/bin/bash # Read the user input echo 'Enter the user name: ' read first_name echo 'The Current User Name is $first_name' echo echo 'Enter other users'names: ' read name1 name2 name3 echo '$name1, $name2, $name3 are the other users.' 

Bash コンソールを参照してください。

ユーザー入力の読み取り

出力:

ユーザー入力の読み取り

read コマンドで変数を渡さなかった場合はどうなりますか?

read コマンドで変数を渡さない場合は、という組み込み変数を渡すことができます。 返事 ($ 記号を接頭辞として付ける必要があります) 入力を表示する間。以下のプログラムを使用して説明できます。

Javaのプライムプログラム

プログラム:

 #!/bin/bash # using read command without any variable echo 'Enter name : ' read echo 'Name : $REPLY' 

Bash コンソールの場合:

ユーザー入力の読み取り

出力:

ユーザー入力の読み取り

例 2:

この例では、同じプロンプトに入力を入力します。 -p コマンドラインオプション 次のように:

 read -p PROMPT 

プログラム:

 #!/bin/bash read -p 'username:' user_var echo 'The username is: ' $user_var 

Bash コンソールを参照してください。

ユーザー入力の読み取り

出力:

ユーザー入力の読み取り

例 3:

この例では、入力をサイレント モードに保ち、コマンド ラインでのユーザー入力が他のユーザーには隠されるようにします。

シングルトン設計パターンJava

したがって、通常は次のようにコマンド ライン オプション (-s、-p) を使用して、ユーザー名を渡し、パスワードを非表示にします (サイレント モード)。

 read -sp PROMPT 

ここで、-s を指定すると、ユーザーはサイレント モードで入力を維持でき、-p を指定すると、新しいコマンド プロンプトで入力できます。

Java文字列をブール値に変換

プログラム:

 #!/bin/bash read -p 'username : ' user_var read -sp 'password : ' pass_var echo echo 'username : ' $user_var echo 'password : ' $pass_var 

Bash コンソールを参照してください。

ユーザー入力の読み取り

出力:

ユーザー入力の読み取り

注: 5 時番目スクリプトの行では、echo コマンドで空白の行を指定しました。空白にしないと、以下の画像のように、パスワードとユーザー名の両方が同じプロンプトに出力されるためです。

ユーザー入力の読み取り

したがって、空の echo コマンド ラインを追加してスクリプトを作成します。

例 4: この例では、配列を使用して複数の入力を入力します。したがって、次のように -a コマンド ライン オプションを使用します。

 read -a 

どこ -a スクリプトが配列を読み取るのに役立ち、variable_name は配列を参照します。

プログラム:

 #!/bin/bash # Reading multiple inputs using an array echo 'Enter names : ' read -a names echo 'The entered names are : ${names[0]}, ${names[1]}.' 

Bash コンソールのコードを参照してください。

ユーザー入力の読み取り

出力:

ユーザー入力の読み取り