มีปัญหามากมายในรหัสขนาดเล็กของคุณ:
อัญประกาศเดี่ยวภายในอัญประกาศคู่ไม่ป้องกันการแทนที่ตัวแปร
ดังนั้น, $0
ขยายเป็น /ถัง/ทุบตี
. ดู ที่นี่.
คุณโชคดีจริง ๆ ที่คำสั่งของคุณล้มเหลว !! หากใช้งานได้จะทำให้ข้อมูลของคุณว่างเปล่า /etc/group
ไฟล์และคุณจะมีปัญหาร้ายแรง
ในขณะที่คุณออก คำสั่ง > ไฟล์
, ไฟล์
ถูกเปิดและว่างเปล่าสำหรับการเขียนและของคุณ สั่งการ
จะเห็นไฟล์ว่าง
ใช้ดีกว่า > file.temp && ไฟล์ mv file.temp
หรือ awk - ฉันแทนที่ ...
.
แทนที่จะเพิ่ม ทุบตี
ตัวแปรโดยตรงใน อึดอัด
รหัส, ใช้ awk -v var=$var
ตัวเลือกและการใช้งาน วาร์
ข้างใน อึดอัด
.
แล้วจะทำอย่างไร ?
คุณไม่จำเป็นต้องอ้างถึงนรกที่ซ้ำกันนี้ คุณสามารถใช้:
sudo awk -i แทนที่ไฟล์ '...'
หรือ
awk '...' ไฟล์ | sudo tee file.temp && ไฟล์ sudo mv file.temp
หรือสำหรับกรณีของคุณเหมาะกว่า เสด
:
sudo sed -i '...' ไฟล์
อย่างไรก็ตามคุณไม่ควรเปลี่ยน /etc/group
ด้วยตนเองเลย
เพิ่มผู้ใช้ด้วย ม็อดผู้ใช้
(ตามที่แนะนำ ที่นี่):
sudo usermod -a -G groupName ชื่อผู้ใช้