Como eu mencionei no meu comentário , há algumas peças vitais que estão faltando aqui e esses comandos juntos não faz muito sentido, mas vou passar por cima deles.
-
if [ ! -w "." ]:.representa o diretório atual.-wtesta se é gravável.!nega o teste (portanto, a declaração retorna true se o diretório não for gravável versus o contrário). -
ps -d | grep -ic -e firefox -e gedit:ps -dimprime todos os processos menos os iniciadores de sessão.greppesquisa a saída canalizada depspara padrões (que chegaremos em um minuto).-itorna o caso de pesquisa insensível.-cgera uma contagem das correspondências em vez das correspondências reais.-eusa as expressões de pesquisa. Nesse caso,firefoxegedit. Então, se nem o FF nem o gedit estiverem rodando, o comando irá mostrar 0. Se um deles estiver rodando, ele irá gerar 1. Se ambos estiverem rodando, ele irá gerar 2. -
firefox &: inicie o Firefox.&força o processo para o segundo plano. -
firefoxPid=$!: Em um script de shell bash$!contém o número da tarefa do último comando background.firefoxPidé uma variável. Então, o que está acontecendo aqui é o número do último comando background (que por acaso é do firefox) ser armazenado em uma variável chamadafirefoxPid.