O nome de usuário do usuário atual pode ser obtido no Bash puro com a ${parameter@operator}
expansão de parâmetro (introduzida no Bash 4.4):
$ : \\u
$ printf '%s\n' "${_@P}"
O :
interno (sinônimo de true
) é usado em vez de uma variável temporária, definindo o último argumento, armazenado em $_
. Em seguida, expandimos ( \u
) como se fosse uma string de prompt com o P
operador.
Isso é melhor do que usar $USER
, pois $USER
é apenas uma variável ambiental regular; ele pode ser modificado, desabilitado, etc. Mesmo que não seja intencionalmente violado, um caso comum em que ainda está incorreto é quando o usuário é alternado sem iniciar um shell de login ( su
o padrão).