รันคำสั่งในเซสชัน tmux ที่แยกออก


24

นี่อาจจะง่าย แต่ฉันไม่สามารถหาวิธีที่คุณทำ ฉันได้อ่านหน้า man และ googled โดยไม่มีผลลัพธ์

ปัญหา: ฉันจะรันคำสั่งในหน้าต่าง tmux ที่แยกออกได้อย่างไร?

ตัวอย่าง: ฉันต้องการให้หน้าต่างเดี่ยวของฉัน 'foo' รัน 'ls' แต่ฉันต้องการทำจากเทอร์มินัลอื่น

ฉันได้ลองทำสิ่งที่ชอบ: 'tmux -t foo ls' โดยไม่มีผลลัพธ์

คำตอบ:


39

sendคำสั่งคือ sendเป็นลำดับสำคัญดังนั้นให้ปฏิบัติตาม (เช่นคุณอาจต้องการENTER) -tเป้าหมายที่ระบุไว้ด้วย คุณอาจต้องการ foo.0 หรือ foo.1 ขึ้นอยู่กับบานหน้าต่างที่คุณต้องการกด

tmux send -t foo.0 ls ENTER

sendสั้นสำหรับsend-keysซึ่งตั้งอยู่ในหน้าคน แต่อาจเป็นเรื่องยากที่จะหาในข้อความที่ไมล์


คำตอบที่ดี ข้อมูลมากและมีเสน่ห์ ขอบคุณ!
Accatyyc

ทางออกอันงดงามที่สุดสำหรับปัญหานี้! ขอบคุณมาก!
3bdalla

2
โปรดทราบว่าในการกำหนดเป้าหมายหน้าต่างเฉพาะในเซสชั่นเฉพาะคุณแยกพวกเขาด้วยเครื่องหมายโคลอน =>tmux send-keys -t foosession:foo.0 ls ENTER
nickspoon

หากคุณต้องการส่งช่องว่างระหว่างคำคุณควรล้อมรอบคำสั่งด้วยเครื่องหมายวรรคตอนสองรายการ คำสั่ง ENTER ยังคงควรอยู่ข้างนอก สิ่งนี้ใช้ได้กับฉันใน UBUNTU 16.04: tmux send -t session_name 'echo durp'ENTER
TrollAxeThrower
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.