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.