Quando eu estava digitando o comando
su > echo "sachin"
estava pedindo uma senha. Quando dei minha senha, algumas coisas estranhas aconteceram como você pode ver:
Mais uma coisa: há outro usuário, Hadoop , no meu laptop, mas quando eu faço isso
su > echo "Hadoop"
diz
nenhuma entrada de senha para o Hadoop
O que isto significa?
command-line
bash
sudo
Sachin Setiya
fonte
fonte
echo
não é executado. após o comando de redirecionamento ">", é lido como um nome de arquivo. O restante do argumento é passadosu
como de costume!su $(echo "sachin")
. Isso faria o que você está dizendo.Respostas:
Ah! Belo quebra-cabeça!
Apenas diga "
exit
", e todos os seus arquivos estarão lá (e a saída que você perdeu em um arquivo chamadoecho
).Explicação:
é o mesmo que
Então você está iniciando um (sub) shell com
su
(alternar usuário) para o seu usuário, com toda a saída redirecionada para um arquivo chamadoecho
!Veja:
fonte
su user > echo
o tempo todo, e> echo su user
com alguma frequência, massu > echo user
quase nunca, pois raramente há razões práticas para escrever um comando de maneira tão confusa. (Que tal sintaxe é aceito é ocasionalmente útil ao gerar automaticamente comandos de um programa ou script, no entanto.)su > stdout.txt user
não seria tão complicado ...