Como echo está embutido em todos os shells, ele não será exibido na lista de processos.
No entanto, não é confiável para dados arbitrários
Você pode usar printf '%s\n' "$PIN" para algo mais confiável, mas note que alguns shells baseados em pdksh ainda não possuem printf builtin. O trabalho em torno deles é usar print -r -- "$PIN" . print está disponível em zsh e todas as implementações de ksh , mas não é um comando padrão.
Você também pode usar um documento aqui:
cmd << EOF
$PIN
EOF
(ou aqui-string ( cmd <<< "$PIN" ) em zsh e alguns outros shells agora). Mas observe que com a maioria das implementações, os documentos aqui são implementados com arquivos temporários, portanto, o PIN pode ser recuperado offline se o arquivo foi confirmado em disco.
É melhor não exportar PIN para o ambiente se você puder evitá-lo, pois é mais facilmente detectável por outros processos (visto em /proc/pid/environ , que processos com o mesmo uid podem ler, embora haja muitas restrições sobre o que pode ler a memória de outro processo). ps em alguns sistemas (raros) também permitem que você veja o ambiente de qualquer processo.
Uma vez no ambiente, em alguns sistemas, há um comando printenv para exibir seu valor:
printenv PIN
Ou você sempre pode usar perl :
perl -le 'print $ENV{PIN}'