По крайней мере, в других оболочках, вы должны быть намного осторожнее с пробелами;квадратная скобка является именем команды и должна быть отделена от предыдущих и следующих слов.Вам также нужно (опять же в классических оболочках наверняка) заключить переменные в двойные кавычки:
app1=$(someapp -flag | grep usefulstuff | cut -c 5-10)
if [ "$app1" = "$(someapptwo -flag | grep usefulstuff | cut -c 20-25)" ]
then mkdir IPFolder-1
elif ...blah blah
then : do this instead...
fi
Вы можете сделать все это в одну строку (ну, две, потому что я по возможности избегаю горизонтальной полосы прокрутки):
if [ "$(someapp -flag | grep usefulstuff | cut -c 5-10)" = \
"$(someapptwo -flag | grep usefulstuff | cut -c 20-25)" ]
then mkdir IPFolder-1
elif ...blah blah
then : do this instead...
fi
Или вы можете сделать это с двумя отдельными захватами команд:
app1=$(someapp -flag | grep usefulstuff | cut -c 5-10)
app2=$(someapptwo -flag | grep usefulstuff | cut -c 20-25)
if [ "$app1" = "$app2" ]
then mkdir IPFolder-1
elif ...blah blah
then : do this instead...
fi
Обновление: Добавлено несколько дополнительных цитат.Можно было бы также процитировать назначения:
app1="$(someapp -flag | grep usefulstuff | cut -c 5-10)"
Никакого вреда не будет;с bash
это строго не обязательно (но вполне возможно, что это необходимо для архаичной оболочки Bourne).