Я пытаюсь написать цикл for с grep. Когда grep возвращает значение, я хочу отобразить сообщение «running». Если значение не возвращается, отобразите «доступно».Использование grep в цикле for
Я думаю, что что-то не так с моим утверждением if, но я ничего не могу найти.
Любые предложения были бы весьма полезными.
#!/bin/sh
#JWR1.0, REL1.10
echo "Content-type: text/html"
echo ""
chk_port = 'ps -ef | grep "port $i -"'
for ((i=1; i<=5; i++))
do
if [[ $chk_port ]]; then
echo "Running - $i<br>"
else
echo "Available - $i<br>"
fi
done
echo "<br>"
# For debugging
ps -ef | grep "port 1 -"
Пример вывода:
Available - 1
Available - 2
Available - 3
Available - 4
Available - 5
apache 7706 7700 0 15:07 ? 00:00:00 grep port 1 -
Попробуйте заменить $ chk_port на это: $ (ps -ef | grep "port $ i -") –
Спасибо, Эд, это сработало для меня! – Jeremy
@ed .: Это делает 'for'-loop довольно бессмысленным, так как он просто проверяет пять раз, чтобы узнать, был ли процесс изначально запущен. , , – ruakh