ข้อผิดพลาดเฉพาะของคุณเกิดจากการไม่ใช้--execute
ตัวเลือกอย่างถูกต้อง หากคุณดูข้อความที่ตัดตอนมาจากหน้าคนด้านล่างคุณจะสังเกตได้ว่า--execute
ไม่มีเครื่องหมายเท่ากับรายการซึ่งเป็นส่วนหนึ่งของไวยากรณ์เนื่องจากมันจะเรียกใช้ส่วนที่เหลือทั้งหมดของบรรทัดคำสั่ง ตัวอย่างของการใช้ที่ถูกต้องคือ:
gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'
หมายเหตุสำคัญ:
การใช้cd
งานเป็นกรณีพิเศษเล็กน้อย cd
ไม่เหมือนคำสั่งส่วนใหญ่ - มันไม่ได้เปิดตัวไบนารี / ปฏิบัติการของตัวเอง มันถูกตีความโดยตรงโดยbash
(หรืออะไรก็ตามที่คุณใช้เชลล์) ดังนั้นความพยายามในการเรียกใช้cd
ไม่เห็นด้วยกับ--execute
และตั้ง-x
ค่าสถานะ (ซึ่งดูเหมือนว่าต้องการวางไข่กระบวนการเด็กโดยตรง) ปัญหาเดียวกันจะเกิดขึ้น (ผมได้ตรวจสอบ) ที่มีคำสั่งอื่น ๆ ที่มีการประมวลผลโดยตรงเช่นbash
home
แม้ว่าจะใช้อย่างถูกต้องโดยไม่มีเครื่องหมายเท่ากับ แต่จะยังส่งผลให้เกิดข้อผิดพลาด: "ไม่พบไฟล์หรือไดเรกทอรี" ดังนั้นการใช้--working-directory=[DIRECTORY]
ตัวเลือกจึงเป็นทางออกที่ดีที่สุดของคุณสำหรับการทำสิ่งที่คุณต้องการจะทำ
หมายเหตุสำคัญอื่น ๆ :
แม้ว่านี่จะไม่ใช่กรณีนี้ แต่คุณก็ยังมีปัญหาอยู่ ปัญหาอยู่ที่การพยายามใช้--execute
ตัวเลือกเมื่อคุณตั้งใจจะใช้ความหมายของ--command
ตัวเลือก ในเอกสาร man page นั้นระบุไว้โดยเฉพาะ
-e, - คำสั่ง = STRING
ดำเนินการอาร์กิวเมนต์กับตัวเลือกนี้ภายในเทอร์มินัล
-x, -
ดำเนินการดำเนินการส่วนที่เหลือของบรรทัดคำสั่งภายในอาคาร
(เน้นที่เหมือง)
มันอาจจะไม่แยกวิเคราะห์ในแบบที่คุณคิดว่ามันควร ใช้--execute
ป้องกันคุณจากการผ่านตัวเลือกเพิ่มเติมใด ๆ gnome-terminal
ไป
ข้อความที่ตัดตอนมาจากหนึ่งในสคริปต์ของตัวเองที่ฉันเรียกใช้หลายคำสั่งในแท็บแยกต่างหาก (เปลี่ยนชื่อเพื่อความเป็นส่วนตัว / ความปลอดภัยของฉัน):
gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"
(บังเอิญพยายามใช้การ--command
ตั้งค่าสถานะด้วยcd
หรือhome
จะทำให้เกิดข้อผิดพลาด "ไม่มีไฟล์หรือไดเรกทอรี" ที่คุ้นเคย)
ฉันหวังว่ามันจะไม่นานเกินไป ฉันแค่พยายามจะละเอียด