らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

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

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

サンプル 1

#!/bin/sh

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

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

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

サンプル 2

#!/bin/sh

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

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

# ./sample2.sh
Enter your name: 
# ./sample2.sh
Enter your name: Alice
Hello, Alice!

サンプル 3

#!/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!"

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

# ./sample3.sh 
Enter your name: 
Enter your name: Alice
Hello, Alice!