Как запустить команду Tmux на всех панелях в одном или нескольких сеансах?

Вы успешно добавили репозиторий Powershell в свой sources.list.

Тем не менее,вы сообщаете, что используете систему с 32-битной архитектурой -. Ваш вывод apt-cacheподтверждает, что ваши репозитории не содержат пакет Powershell.

При просмотре Powershell GitHub выяснилось, что Microsoft не предоставляет пакет Linux для Powershell для 32-разрядных -систем Linux. Все исходные тексты и бинарные пакеты, доступные здесь для Linux, предназначены для 64 -битных систем.

Как отмечает в своем комментарии пользователь Bob, Powershell для Linux зависит от .Net Core .

Если вы знакомы со сборкой из исходного кода, вы потенциально можете собрать 32-битный -пакет, но это вопрос другого рода. На самом деле это может не сработать, поскольку Powershell может предъявлять жесткие требования к 64-битным -инструкциям и оптимизациям.

0
06.10.2020, 11:39
1 ответ

Вот сценарий, который я написал для этого. Сохраните какtmux-sendall(chmod +x tmux-sendall):

#!/bin/bash

if [[ -z $1 ]]; then
    current=$(tmux display -p "#S")
    echo "usage: tmux-sendall SESSION [COMMAND]"
    if [[ -n $current ]]; then
        echo "current session: $current"
    fi
    exit 1
else
    session="$1"
fi

if [[ -n $2 ]]; then
    message="$2"
else
    read -p "send cmd to session $session$ " message
    if [[ -z $message ]]; then exit 1; fi
fi

function sendwindow() {
    # $1=target, $2=command
    tmux setw -t $1 synchronize-panes
    tmux send-keys -lt "$1" "$2"
    tmux send-keys -t "$1" "Enter"
    tmux setw -t $1 synchronize-panes off
}

export -f sendwindow
tmux list-windows -t $session | cut -d: -f1 | xargs -I{} bash -c "sendwindow '$session:{}' '$message'"

Он выводит список окон для данного сеанса, а затем выполняет функцию sendwindowдля каждого из них.

Вы можете настроить функцию sendwindowс помощью команд tmux, если хотите, чтобы она делала что-то еще.

Пример, если у вас есть сеанс с именем1:

tmux-sendall 1 "echo hello world"
0
18.03.2021, 22:59

Теги

Похожие вопросы