Executo o seguinte comando no shell: smbldap-userlist | grep -v \\$ | cut -d '|' -f 2
Todos os computadores cadastrados no meu Samba terminam com '$', portanto coloquei aquele grep pra ter apenas o retorno dos usuários. Blz, até aí tudo azul. O problema é quando eu tento colocar esse comando dentro de um exec, para salvar em uma variável ou usar em um loop:
users=`smbldap-userlist | grep -v \\$ | cut -d '|' -f 2` ou for users in `smbldap-userlist | grep -v \\$ | cut -d '|' -f 2` do #comandos... doneou mesmo mandando um echo `smbldap-userlist | grep -v \\$ | cut -d '|' -f 2` na linha de comando.
Neste caso, o comando não me retorna nada. Imagino que seja algum problema com as barras usadas como escape, pois se eu uso 'fgrep -v $' ao inves do grep, resolve. Sei que o caracter $ é especial no grep (fim de linha), mas o que me deixa curioso é o comando funcionar normalmente quando executado direto, e não funcionar quando executo dentro de um exec (`comando`).
No fim das contas resolvi usando pipemill, mas fiquei curioso. Alguém sabe a razão deste comportamento?
On 06/30/2010 10:38 AM, Fabricio Cannini wrote:
On Wednesday 30 June 2010 10:00:11 Leonardo Carneiro - Veltrac wrote:Salve galera, Tenho um domínio Samba PDC 3.4.7 com backend em um OpenLDAP 2.4.11. Hoje estou usando o LDAP apenas como backend de logon do Samba, mas pretendo usar com outros softwares. Preciso alterar alguns atributos de TODOS os usuários. Felizmente cada atributo vai ter o mesmo valor em todos os usuários. Existe alguma mágica para fazer isso? Até mais.Apache directory studio. ;)