ฉันต้องการสร้างสคริปต์ทุบตีที่ต้องดำเนินการด้วย sudo แต่ควรคำนึงถึงชื่อของผู้ใช้ที่ไม่ใช่ sudo ที่ดำเนินการ ดังนั้นหากผู้ใช้bobรันsudo ./myscript.shฉันอยากmyscript.shรู้bobเป็นผู้ดำเนินการ
ลองดูข้างในmyscript.sh:
USER=$(whoami)
# Do something that takes into account the username.
ฉันจะทราบชื่อของผู้ใช้ที่วางกระบวนการได้อย่างไร โดยเฉพาะอย่างยิ่งสิ่งที่ฉันควรใช้แทนที่จะwhoamiได้รับbobและไม่root?
ทำไมไม่แก้ไข แก้ไขแล้ว
—
marcio
มันไม่สำคัญเกินไปการแก้ไขจะต้องมีอย่างน้อย 6 ตัวอักษรอย่างน้อยตัวที่แนะนำ
—
nyuszika7h
โอเคฉันเข้าใจ. ขอบคุณสำหรับเคล็ดลับ: DI มักจะใส่ hashbang
—
marcio
#!/usr/bin/env bashในสคริปต์ทุบตีของฉัน
hashbang นั้นจะถูกละเว้นหากคุณโทรหาอย่างชัดเจนด้วย
—
nyuszika7h
shหรืออย่างอื่น
USER=$(whoami)นั่นคือไม่ได้เป็นสคริปต์ที่ถูกต้องผมคิดว่าคุณหมายถึง โปรดทราบว่าUSERมีอยู่แล้วเป็นตัวแปรภายในของเชลล์ นอกจากนี้หากเป็นสคริปต์ทุบตีอย่าใช้โดยใช้shซึ่งมีชุดย่อยของคุณลักษณะที่เข้ากันได้กับ POSIX เท่านั้น