Você precisa escapar de todos os símbolos especiais. O símbolo $
é especial porque representa um nome de variável ou um bloco de código dentro dos parênteses. Então, se você executá-lo, o bash tentará executá-lo primeiro no script que contém o código de escrita e, em seguida, escrever o resultado em seu arquivo ( /home/file.sh
).
Para escapar de um símbolo, use o símbolo \
. Por exemplo:
echo "for line in \$(grep -o 'guest-......' /etc/passwd | sort -u); do sudo deluser \$line; done" >> /home/file.sh