Se o documento aqui só deve ser adicionado se nada estiver presente, você pode usar grep
:
cat <<-"EOF1" > myPath/myFile.append
content...
EOF1
if ! grep -F -q -f myPath/myFile{.append,}; then
cat myPath/myFile.append >> myPath/myFile
fi
Para entender isso, considere o seguinte.
-
grep -F -q -f myPath/myFile{.append,}
é expandido pelo shell paragrep -F -q -f myPath/myFile.append myPath/myFile
. -
O comando
grep
pesquisamyPath/myFile
(o arquivo ao qual o texto deve ser adicionado, se necessário) para qualquer sequência fixa (-F
) contida emmyPath/myFile.append
(o arquivo que contém o texto a ser adicionado) ), lendo um padrão por linha (-f
), e indica se encontra algum somente por seu código de saída , sem saída (-q
). -
O resultado é então negado em
!
, de modo que a%if
do blocothen
seja executada somente segrep
não encontrar nada.