1. ホーム
  2. bash

[解決済み] Bashでユーザの入力を変数に読み込むには?

2022-07-09 14:25:30

質問

iOSデバイスで新しいユーザーを作成するプロセスを簡素化するスクリプトを作成しようとしています。以下は、そのステップの内訳です。

fullname="USER INPUT"
user="USER INPUT"
group=$user
uid=1000
gid=1000
home=/var/$user
echo "$group:*:$gid:$user" >> /private/etc/group
echo "$user::$uid:$gid::0:0:$fullname:$home:/bin/sh" >> /private/etc/master.passwd
passwd $user
mkdir $home
chown $user:$group $home

ご覧のように、いくつかのフィールドでは入力が必要です。スクリプトの変数に入力を要求するにはどうしたらよいでしょうか?

どのように解決するのですか?

使用方法 read -p :

# fullname="USER INPUT"
read -p "Enter fullname: " fullname
# user="USER INPUT"
read -p "Enter user: " user

確認したい場合

read -p "Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1

また、パス名の展開やスペースによる単語の分割を防ぐために、変数を引用符で囲む必要があります。

# passwd "$user"
# mkdir "$home"
# chown "$user:$group" "$home"