TL; DR: Esses comandos não parecem fazer o que você provavelmente pretende.
Se você estiver tentando tornar at execute apt-get purge phpmyadmin -y de bash em 2 minutos, seu código não fará o que você deseja fazer.
O comando à esquerda do pipe ( | ) tem seu documento aqui como sua entrada padrão. Esse comando não é executado até que o shell tenha lido seu documento completo aqui.
De 3.6.6 aqui documentos no Manual de Referência do Bash :
Este tipo de redirecionamento instrui o shell a ler a entrada do
fonte atual até uma linha contendo apenas palavra (sem
espaços em branco) é visto. Todas as linhas lidas até esse ponto são usadas
como a entrada padrão (ou descritor de arquivo n se n for especificado) para
um comando.
Um comando com um documento aqui é, na verdade, apenas um único comando que deve ser totalmente lido pelo shell antes de ser executado. Em seu código, o shell lê a entrada até que PMA_UNINSTALL apareça em uma linha sozinho. Uma vez que isso aconteceu, o shell então usa o conteúdo do documento here como descritor de arquivo 50 para o comando bash /dev/fd/50 .
Esse comando nem sequer inicia uma nova instância de bash até que o documento here tenha sido totalmente lido. Quando bash é executado, ele executa este comando:
apt-get purge phpmyadmin -y
Como todo o lado esquerdo do tubo incluindo o documento aqui tem sua saída padrão canalizada para at , a entrada at gets é a saída de bash , que é a saída de apt-get purge phpmyadmin -y . at , em seguida, tenta interpretar essa saída - não o comando apt-get , mas sua saída - como uma lista de comandos a serem executados em /bin/sh .
Então, isso quase certamente não é o que você pretende fazer.
Não sei por que você não recebe um prompt do shell de volta logo após inserir o código. Quando eu o executo em uma máquina de teste, recebo um aviso de shell em alguns segundos. Se você quiser depurar isso, você pode tentar executar apt-get purge phpmyadmin -y interativamente no bash. A maneira como seu código é escrito, esse comando é executado completamente antes at retorna para o shell (e antes que at possa planejar qualquer coisa). Provavelmente não seria útil depurar esse código específico ainda.