Почему использование grep с экраном не работает правильно? - PullRequest
0 голосов
/ 19 января 2020

Я хочу проверить, есть ли экран с моим сервером в списке экранов. Я использую этот скрипт, но он отстой и не работает

#!/bin/bash

SERWER="test_start.sh"
SCRN="testMinecraft"

if ! [[ screen -ls | grep $SCRN ]]; then
        /root/testser/$SERWER
fi

idk, что мне нужно изменить там, чтобы запустить этот скрипт

РЕДАКТИРОВАТЬ: я изменить его на это, но он все еще не не работает

#!/bin/bash

SERWER="test_start.sh"
SCRN=`screen -ls | grep "testowyscreen" | wc -l`

if ! [ $screen -eq 1  ]; then
        echo "there is nothing";
        /root/testser/$SERWER
fi

вывод: ./test_restart.sh: line 6: [: -eq: unary operator expected

1 Ответ

0 голосов
/ 19 января 2020

bash поддерживает [[ и ]], и вам необходимо поместить восклицательный знак внутри браслетов, например:

#!/bin/bash

SERWER="test_start.sh"
SCRN=`screen -ls | grep "testowyscreen" | wc -l`

if [[ ! $screen -eq 1 ]]; then
    echo "there is nothing";
    /root/testser/$SERWER
fi

PS `` устарела, вы должны использовать $ ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...