Если я жестко кодирую процесс, я хочу найти и запустить скрипт a
Скрипт А
#!/bin/bash
PROCESS=/System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Co
number=$(ps aux | grep $PROCESS | wc -l)
if [ $number -le 1 ]
then
echo "Nope - This seems NOT to be Running"
exit 2
else
if [ $number -ge 2 ]
then
echo "This seems to be Running"
exit 0
fi
fi
Сценарий дает мне ожидаемый ответ.
Если я запустил сценарий B следующим образом ./scriptb.sh /System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Co
Он всегда возвращается как «Кажется, это работает», даже если я поставлю sakdjnsakjsakfndsdkjnf, как они утверждают?
#!/bin/bash
number=$(ps aux | grep $1 | wc -l)
if [ $number -le 1 ]
then
echo "Nope - This seems NOT to be Running"
exit 2
else
if [ $number -ge 2 ]
then
echo "This seems to be Running"
exit 0
fi
fi
В чем дело?
grep помещается в список процессов.
Используйте pgrep для поиска процесса. Что-то вроде:
T=$(pgrep -f "$PROCESS")
if test -z "$T" ; then
...
else
...
fi
должен сделать свое дело.