Я новичок в bash-скриптинге и учусь, работая над небольшим проектом, над которым я работаю.Однако я столкнулся с проблемой, которую, похоже, не могу обойти.
У меня есть переменная, которую мне нужно включить в команду.При запуске непосредственно в оболочке (с вводом переменной вручную) команда возвращает ожидаемый результат.Тем не менее, я не могу заставить его работать при использовании переменной.
Итак, если я запускаю это вручную, он корректно возвращает 0 или 1, в зависимости от того, запущен он или нет.
ps -ef | grep -v grep | grep -c ProcessName
Однако, когда я пытаюсь вставить это в предложение while, он всегда оценивается в 0, потому что не ищет правильный текст.
while [ `ps -ef | grep -v grep | grep -c {$1}` -ne 0 ]
do
sleep 5
done
Есть ли способ, которым я могу сделать это?Я пробовал множество разных вещей безрезультатно.Я также пытался использовать синтаксис $ () для подстановки команд, но мне тоже не повезло.
Спасибо!