echo "$password"
Isso permitirá a interpolação da variável (aqui, em *
) sem invocar a globalização de shell.
Edit: Eu percebi que isso não tem nada a ver com $()
, é apenas o resultado de usar echo *
. Então eu só preciso de uma maneira de escapar com echo
.
Estou escrevendo um script que verifica o que os usuários não têm senhas comparando /etc/passwd
e /etc/shadow
.
Até agora eu tenho:
cat /etc/passwd | while read -r line ; do
user=$(echo $line | cut -d ":" -f 1)
password=$(cat /etc/shadow | grep $user | cut -d ":" -f 2)
echo $password
done
O problema é que quando o resultado do meu grep é *
para o campo de senha, que é o caso de todos os usuários sem uma senha, parece que ls *
é executado? Por exemplo:
Estou confuso sobre o porquê isso está acontecendo. Alguém pode explicar o que está acontecendo aqui?
*
.
Tags bash