วิธีการเปิดตัวชุดของโปรแกรมภายใน tmux หรือ gnome-terminal ภายในสคริปต์ได้อย่างไร


32

ฉันต้องการเรียกใช้คำสั่งสองสามคำพร้อมกันใน tmux หรือ gnome-terminal หรือ xfterminal ทุกแท็บที่ต่างกันโดยใช้คำสั่งเดียวและปิดแท็บนั้นเมื่อคำสั่งนั้นเสร็จสิ้น

ยินดีต้อนรับซอฟต์แวร์อื่นใดเช่นกัน

ฉันต้องการออกสคริปต์เดียวเพื่อทำงานเช่น XX "cmd1" "cmd2" "cmd3"

คำตอบ:


27
tmux new -d -s my-session 'echo window-1 pane-1; sleep 8' \; \
          split-window -d 'echo window-1 pane-2; sleep 6' \; down-pane \; \
            new-window -d 'echo window-2;        sleep 4' \; next-window \; \
                attach \;

ด้านบนเป็นตัวอย่างการใช้งานของแนวคิดทั่วไป ... เพิ่มเติมได้ที่นี่: วิธีเรียกใช้ streamripper และ mplayer ในเทอร์มินัล X หน้าจอแยกผ่านสคริปต์เดียว


27

เปิดเซสชัน tmux และเริ่มต้นคำสั่งแรก จากนั้นเรียกใช้คำสั่งเพิ่มเติมในหน้าต่างใหม่และกระจายขนาดหน้าต่างอย่างสม่ำเสมอในตอนท้าย

tmux \
  new-session  "command1 ; read" \; \
  split-window "command2 ; read" \; \
  split-window "command3 ; read" \; \
  split-window "command4 ; read" \; \
  select-layout even-vertical

readหลังจากแต่ละคำสั่งที่ทำให้เกิดหน้าต่างเพื่อเปิดอยู่หลังคำสั่งได้เสร็จสิ้นเพื่อให้คุณสามารถอ่านเอาท์พุท


2
คำตอบนี้สมควรได้รับการโหวตมากขึ้น ขอบคุณชาย
Lester Cheung

7

ถ้ามันเสมอการตั้งค่าเดียวกันของโปรแกรมที่คุณสามารถใช้เครื่องมือเช่นteamocil

คุณจะต้องสร้างด้วยการกำหนดค่า (เช่น~/.teamocil/sample) ซึ่งมีสิ่งต่อไปนี้:

windows:
  - name: my-first-window
    root: ~/Projects/foo-www
    filters:
      before: "rvm use 1.9.2"
      after: "echo 'I am done initializing this split.'"
    splits:
      - cmd: "git status"
      - cmd: "bundle exec rails server --port 4000"
        width: 50
      - cmd:
          - sudo service memcached start
          - sudo service mongodb start
        height: 50

จากนั้นคุณสามารถเรียกใช้: tmux new-session -d "teamocil sample" \; attach


6

ด้วยgnome-terminalมันจะเป็น:

gnome-terminal --window -e 'cmd1' --tab -e 'cmd2' --tab -e 'cmd3'

แต่ละแท็บจะถูกปิดหลังจากคำสั่งเสร็จสิ้น


ยอดเยี่ยมเช่นกัน แต่ฉันชอบ tmux ในเวลานี้ ;-P
daisy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.