Что делают эти команды из сценария оболочки?

Я только начинаю изучать баш. У меня есть следующий скрипт, и я хотел бы знать, что делают следующие команды, чтобы немного понять этот мир.

if [ ! -w "." ] then echo "You need write permission in the directory" exit 1 fi firefoxGeditOpen=ps -d | grep -ic -e firefox -e gedit if [[firefoxGeditOpen>0]] then echo "Firefox and Gedit must be closed to let the script work" exit 1 fi while(true) do firefox & firefoxPid=$! gedit & geditPid=$! echo "Firefox PID $firefoxPid Gedit PID $geditPid">>result.txt wait echo "You have closed all the processes. They will be re-opened">>result.txt done 

Заранее спасибо!