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.-w
testa 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 -d
imprime todos os processos menos os iniciadores de sessão.grep
pesquisa a saída canalizada deps
para padrões (que chegaremos em um minuto).-i
torna o caso de pesquisa insensível.-c
gera uma contagem das correspondências em vez das correspondências reais.-e
usa as expressões de pesquisa. Nesse caso,firefox
egedit
. 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
.