&&
é o operador “e”: ele executa o comando da esquerda e, se esse comando for verdadeiro (ou seja, sai com um status 0), ele executa o comando à direita.
[ "$2" = "" ]
testa se o segundo parâmetro da função delimitadora (ou script, se usado fora de uma função) está vazio. (Se houver menos de dois parâmetros, $2
está vazio.)
>$1
é o comando vazio redirecionado para o arquivo cujo nome é o primeiro parâmetro $1
. Isso cria um arquivo vazio, se ele não existir, e esvazia o arquivo, se já existir. Este comando pode falhar se o script não tiver permissão para criar ou modificar o arquivo.
return
sai da função de inclusão.
Assim, o significado desta linha é: se $2
estiver vazio, crie ou trunque o arquivo chamado $1
e, se for bem-sucedido, retorne da função.