Bash'de bir değişkene kullanıcı girişi nasıl okunur?


89

Bir iOS cihazında yeni bir kullanıcı oluşturma sürecini basitleştiren bir komut dosyası oluşturmaya çalışıyorum. İşte bozulan adımlar.

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

Gördüğünüz gibi bazı alanlar giriş gerektiriyor. Kodda bir değişken için nasıl girdi talep edebilirim?

Yanıtlar:


180

Kullanım read -p:

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

Onaylamak isterseniz:

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

Yol adı genişlemesini ve boşluklarla kelime bölünmesini önlemek için değişkenlerinizi de alıntı yapmalısınız:

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

7
Kullanabilirsiniz ${confirm^^} == 'YES'.
Aleks-Daniel Jakimenko-A.

1
@ Aleks-DanielJakimenko Bu, diğer insanların kullandığı alışıldık bir yöntemdir ancak yalnızca 4.0+ ile uyumludur.
konsolebox



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.