tmux स्क्रिप्ट कई कमांड लॉन्च करने के लिए


21

मैं निम्नलिखित को बैश स्क्रिप्ट में कैसे लिख सकता हूं?

tmux # Start tmux session.
compass watch /path/to/project1/compass/ # Run the first process.
Ctrl + B, " # Split the pane.
compass watch /path/to/project2/compass/ # Run the second process.
Ctrl + B, D # Exit the session.

जवाबों:


21
tmux \
    new-session  'compass watch /path/to/project1/compass/' \; \
    split-window 'compass watch /path/to/project2/compass/' \; \
    detach-client

new-sessionआदेश (जो एक नया बनाता tmuxसत्र) और split-windowआदेश में (जो दो शीशे में वर्तमान विंडो विभाजन) tmuxको चलाने के लिए वैकल्पिक खोल आदेशों लेता है। detach-clientअंत में स्पष्ट करता है।

यदि आप एक क्षैतिज विभाजन चाहते हैं (दो फलक अगल-बगल), तो split-window -hऊपर दिए गए कमांड में उपयोग करें ।

जब कई tmuxकमांड भेजते हैं tmuxतो आपको उन्हें अलग करने की आवश्यकता होती है ;;जरूरतों के हवाले / यह (भागने से खोल से संरक्षित किया जाना ';', ";"या \;), के अंत के रूप में यह व्याख्या से खोल को रोकने के लिए tmuxआदेश।

मैंने पठनीयता के लिए पूरी चीज़ को अलग-अलग लाइनों में विभाजित किया है। यदि आप ऐसा स्क्रिप्ट में करते हैं (जो मैं सुझाता हूं), तो सुनिश्चित करें कि \प्रत्येक पंक्ति पर अंतिम के बाद कुछ भी नहीं है ।

साथ सत्र के लिए पुनः अनुलग्न tmux a, tmux attachया tmux attach-session(इन सभी बराबर हैं)।

tmuxएक बार दोनों आदेशों को क्रियान्वित समाप्त कर दिया है सत्र समाप्त हो जाएगा।


3

यह मेरे लिए काम नहीं करता था (मैं 'ls -la' की तरह कुछ करने की कोशिश कर रहा था)। क्या किया था:

tmux new-session -d bash
tmux split-window -h bash
#sends keys to first and second terminals
tmux send -t 0:0.0 "<my-first-command>" C-m
tmux send -t 0:0.1 "<my-second-command>" C-m
tmux -2 attach-session -d

यह मुझे बहुत सामान्य सामान चलाने की अनुमति देता है और यद्यपि यह बदसूरत दिखता है, यह बहुत कार्यात्मक है।

बस इसे छोड़ कर अगर अन्य लोग उसी चीज की तलाश में हैं।

स्रोत: https://gist.github.com/kizzx2/4739236

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.