2013-08-31 12 views
5

Ich versuche ein Skript zu erstellen, das das Erstellen eines neuen Benutzers auf einem iOS-Gerät vereinfacht. Hier sind die Schritte aufgelistet.Wie liest man Benutzereingaben in eine Variable in Bash?

# 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 

Wie Sie einige Felder erfordern Eingang sehen. Wie kann ich eine Eingabe für eine Variable im Skript anfordern?

Antwort

16

Verwendung read -p:

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

Wenn Sie bestätigen möchten:

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

Sie sollten auch Ihre Variablen zitieren Pfadname Expansion und Wort Spaltung mit Leerzeichen zu verhindern:

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

Sie können '' verwenden $ {bestätigen ^^} == ‚YES'''. –

+0

@ Aleks-DanielJakimenko Das ist eine übliche Methode, die andere Leute verwenden, aber es ist nur kompatibel mit 4.0+. – konsolebox

0

Auch Sie können versuchen zenity!

user=$(zenity --entry --text 'Please enter the username:') || exit 1 
Verwandte Themen