Com base no seu problema, parece que você está encontrando um problema com os resultados do seu ldapsearch
.
Para iniciantes, eu habilitaria a saída detalhada para que você possa ver como a parte do backtick de seu comando está sendo expandida.
set -x
val='ldapsearch -h localhost -w test -z 0 -x -b 'dc=test,dc=org' -D \
"cn=admin,dc=testing,dc=com" id=$LINE | grep val'
set +x
Correção de potencial # 2
Eu também o altero para que use a notação $()
em vez dos backticks.
val=$(ldapsearch -h localhost -w test -z 0 -x -b 'dc=test,dc=org' -D \
"cn=admin,dc=testing,dc=com" id=$LINE | grep val)
Correção de potencial # 3
Também gostaria de citar o conteúdo de $LINE
quando passado para id=
.
val=$(ldapsearch -h localhost -w test -z 0 -x -b 'dc=test,dc=org' -D \
"cn=admin,dc=testing,dc=com" id="$LINE" | grep val)
Correção de potencial # 4
Por fim, tento alterar o pipe de |
para |&
, para que você analise STDOUT e STDERR em ldapsearch
.
Dica geral
Você sempre pode habilitar a saída completa detalhada do Bash adicionando a opção -x
à linha shebang.
#!/bin/bash -x
...script...