ข้อผิดพลาดเฉพาะของคุณเกิดจากการไม่ใช้--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จะทำให้เกิดข้อผิดพลาด "ไม่มีไฟล์หรือไดเรกทอรี" ที่คุ้นเคย)
ฉันหวังว่ามันจะไม่นานเกินไป ฉันแค่พยายามจะละเอียด