birkaç komut başlatmak için tmux betiği


21

Aşağıdakileri bash betiğine nasıl yazabilirim?

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.

Yanıtlar:


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

new-session(Yeni bir oluşturur komut tmuxoturumu) ve split-windowiçinde (iki bölmeye Geçerli pencereyi böler) komutunu tmuxçalıştırmak için opsiyonel kabuk komutlarını alır. detach-clientSonunda aşikar yapar.

Yatay bir bölme istiyorsanız (iki bölme yan yana), split-window -hyukarıdaki komutta kullanın .

Birden fazla tmuxkomut gönderirken, tmuxbunları ayırmanız gerekir ;. ;İhtiyaçlarını da (kaçan / verilerek kabuğundan korunacak olan ';', ";"ya da \;sonu olarak yorumlanması gelen kabuk durdurmak için) tmuxkomutu.

Okunabilirlik için her şeyi ayrı satırlara ayırdım. Bunu bir komut dosyasında (bunu öneririm) yaparsanız \, her satırda finalden sonra hiçbir şey olmadığından emin olun .

İle oturuma Reattach tmux a, tmux attachya tmux attach-session(bunların hepsi eşdeğerdir).

Her tmuxiki komutun yürütülmesi tamamlandığında oturum sona erer.


3

Bu benim için işe yaramadı ('ls -la' gibi bir şey yapmaya çalışıyordum). Ne oldu:

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

Bu oldukça genel şeyler çalıştırmama izin verdi ve çirkin görünse de oldukça işlevsel.

Diğer insanların aynı şeyi aramaları durumunda burada bırakmak.

Kaynak: https://gist.github.com/kizzx2/4739236

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.