Застрял в странной вещи, происходящей в сценариях оболочки - PullRequest
0 голосов
/ 17 июня 2019

Итак, я пытаюсь получить сеансы от tmux ls, вывод выглядит примерно так:

mc: 1 windows (created Mon Jun 17 15:53:39 2019) [108x37]
test: 1 windows (created Mon Jun 17 15:53:55 2019) [108x37]

Так что я передаю его в grep в моем скрипте, но он пытается выполнить его, я думаю,

#!/bin/sh

tmux ls | while read x;
do
        TEST=$("$x" | grep -P '^.*?:')
        echo "$TEST"
done

Вывод такой:

root@server0:/home/mc# ./test.sh
./test.sh: 5: ./test.sh: mc: 1 windows (created Mon Jun 17 15:53:39 2019) [108x37]: not found

./test.sh: 5: ./test.sh: test: 1 windows (created Mon Jun 17 15:53:55 2019) [108x37]: not found

Может кто-нибудь сказать мне проблему? Я не мог найти решение, потому что я не знаю, что искать для этой проблемы.

1 Ответ

0 голосов
/ 17 июня 2019

Вы получаете это сообщение об ошибке, потому что вы пытаетесь выполнить строку, прочитанную из вывода tmux ls, вместо ее печати, но у вас больше проблем, чем это.

Непонятно, что вы пытаетесь сделать, но если вы получите mc и test из вывода tmux ls, который вы показываете, то это будет:

tmux ls | cut -d':' -f1

при условии, что tmux ls не имеет возможности просто выводить эти значения (см. Справочную страницу).

Если это не все, что вам нужно, отредактируйте свой вопрос, чтобы предоставить более четкие требования плюс ожидаемый результат для вашего опубликованного образца ввода.

...