คำตอบโดย @raj นั้นถูกต้อง 100% สำหรับการลดความซับซ้อนของรหัส
นี่เป็นเพียงวิธีอื่นในการใช้รหัสทางออกและอาจทำให้กระจ่างขึ้นเล็กน้อยว่าสามารถใช้รหัสดังกล่าวได้อย่างไร
สามารถตรวจสอบรหัสทางออกได้โดยการทำ ก้อง $?
ทันทีหลังจากคำสั่งของคุณ id -u $user &>/dev/null
ซึ่งไม่ต้องใส่ $(..)
หรืออะไรทำนองนั้น
เพียงแค่พยายามที่ id -u <ชื่อผู้ใช้> &>/dev/null
แล้วพิมพ์ ก้อง $?
เพื่อตรวจสอบรหัสทางออก
ตัวอย่าง:
terrance@terrance-ubuntu:~$ id -u terrance &>/dev/null
terrance@terrance-ubuntu:~$ echo $?
0
terrance@terrance-ubuntu:~$ id -u เครื่องหมาย &>/dev/null
terrance@terrance-ubuntu:~$ echo $?
1
ในตัวอย่างข้างต้น ผู้ใช้ เครื่องหมาย
ไม่มีอยู่ในคอมพิวเตอร์ของฉันดังนั้นสถานะการออกของ 1
การใช้รหัสทางออก คุณสามารถใส่ลงใน กรณี
คำสั่งแทน an ถ้า..อื่น
คำแถลง.
#!/bin/bash
echo "กรอกชื่อผู้ใช้"
อ่าน -r ผู้ใช้
id -u "ผู้ใช้ $" &>/dev/null
กรณี $? ใน
0) echo "มีผู้ใช้แล้ว";;
1) ผู้ใช้เพิ่ม $user
echo "เพิ่มรหัสผ่าน"
รหัสผ่าน $user
echo $user >> text.txt
echo "บันทึกแล้ว";;
เอสแซค
ที่น่าสนใจคือการใช้ an ถ้า [ ]; แล้ว
ยังสามารถใช้งานได้เช่นกันโดยเพิ่ม ก้อง $?
ในการตรวจสอบ if ของคุณ แต่ฉันสังเกตเห็นว่าคุณกำลังตรวจสอบ 1 เป็น if มีอยู่ แต่ 1 หมายความว่าไม่พบรหัสที่ออกจาก 1 ความหมาย
การเพิ่มมันก็จะทำงานเช่นนี้เช่นกัน
#!/bin/bash
echo "กรอกชื่อผู้ใช้"
อ่าน -r ผู้ใช้
ถ้า [ $(id -u "$user" &>/dev/null; echo $?) == 0 ]; แล้ว
echo "มีผู้ใช้แล้ว"
อื่น
ผู้ใช้เพิ่ม $user
echo "เพิ่มรหัสผ่าน"
รหัสผ่าน $user
echo $user >> text.txt
เสียงสะท้อน "บันทึก"
ไฟ