Skip to content

対話的にユーザからの入力を待つシェルスクリプトのサンプル

シェルスクリプトで対話的にユーザからの入力を待つサンプルをメモしておきます。

サンプル 1

1
2
3
4
5
#!/bin/sh

echo -n "Enter your name: "
read name
echo "Hello, $name!"

実行結果は以下の通りです。

1
2
3
# ./sample1.sh
Enter your name: Alice
Hello, Alice!

サンプル 2

1
2
3
4
5
6
7
8
#!/bin/sh

echo -n "Enter your name: "
read name
if [ "$name" = '' ]; then
  exit
fi
echo "Hello, $name!"

実行結果は以下の通りです。

1
2
3
4
5
# ./sample2.sh
Enter your name: 
# ./sample2.sh
Enter your name: Alice
Hello, Alice!

サンプル 3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/sh

echo -n "Enter your name: "
while read name
do
  case $name in
    '' ) echo -n "Enter your name: ";;
    * ) break;;
  esac
done

echo "Hello, $name!"

実行結果は以下の通りです。

1
2
3
4
# ./sample3.sh 
Enter your name: 
Enter your name: Alice
Hello, Alice!