ฉันเคยรันคำสั่ง:
sudo -u elasticsearch -s "ulimit -Hn"
และมันก็คืนค่า ulimit -Hn ตามที่เห็นโดยผู้ใช้ elasticsearch จนกว่าฉันจะลองบน Ubuntu 11.10 ที่นั่นมันส่งคืน:
/bin/bash: ulimit -Hn: command not found
ฉันลองคำสั่งที่แตกต่างกันสองสามข้อและเมื่อฉันใช้อาร์กิวเมนต์ฉันจะได้รับ "ไม่พบคำสั่ง":
$ sudo -u elasticsearch -s "ls all.sh"
/bin/bash: ls all.sh: command not found
แนวคิดใดบ้างที่ฉันสามารถรันคำสั่งที่ต้องใช้อาร์กิวเมนต์ผ่านsudo
?
-s
? เพียงแค่เก็บเปลือกปกติและใช้มันเพื่อรันคำสั่งsudo -u elasticsearch ls all.sh
เช่น หากelasticsearch
มีเชลล์เริ่มต้นที่ใช้ไม่ได้ให้ใช้-s bash
ก่อนคำสั่งจริง