1ª pergunta sobre stackoverflow, diga-me se fiz algo errado.
Quero coletar membros do grupo administrativo e compará-los com os usuários locais (algumas contas excluídas via grep -v). Compará-los meio que não funciona, pois sempre mostra 2 strings idênticas como diferentes.
Sou novo no scipting e confio muito no Google para fazer qualquer coisa. Tentei basicamente tudo que encontrei no stackoverflow via google sem sucesso e revisei as perguntas semelhantes, então, embora este pareça ser um tópico recorrente, não acho que seja uma duplicata.
Então aqui está o script:
#!/bin/bash
localuser=$(ls /Users/ | grep -v "Shared\|admin\|.localized\|_appstore\|root")
localadmin=$(dseditgroup -o read admin | grep $localuser)
if [[ "$localadmin" == "$localuser" ]]; then
echo "true"
else
echo "false"
fi
Se eu repetir ambas as variáveis usando od -c, obtenho a seguinte saída:
0000000 m f r a n k \n
0000007
0000000 m f r a n k \n
0000007
Usando set -x (deixando de fora o -if/else), obtenho o seguinte:
++ ls /Users/
++ grep -v 'Shared\|admin\|.localized\|_appstore\|root'
+ localuser=mfrank
++ dseditgroup -o read admin
++ grep mfrank
+ localadmin=' mfrank'
+ echo mfrank
mfrank
+ echo mfrank
mfrank
Aqui posso ver claramente que $localadmin tem dois ' e espaços em branco. De onde eles vêm e como posso me livrar deles? Por que eles não estão aparecendo com od -c?
Muito obrigado por ajudar.
EDITAR:
O uso correto do OD mostra o seguinte:
localadmin
0000000 004411 063155 060562 065556 0000010
localuser
0000000 063155 060562 065556 0000006