Caiu a ficha, eu mesmo vou responder, creio que entendi. Senão, favor corrigir.
Para tal, é preciso ter em mente ambos os conhecimentos
`...` Executa comandos numa subshell, retornando o resultado `ls`
ou
$(...) Executa comandos numa subshell, retornando o resultado $( ls )
e
$? Código de retorno do último comando executado
A variável $? possui o código de retorno do último comando. Cada comando é como uma função que retorna um valor. Caso haja sucesso esse valor é 0 caso haja erro é diferente de 0. Esse valor (código de retorno) sempre é colocado na variável de ambiente $?.
Há uma sútil diferença na terminologia das palavras
"resultado" versus "código de retorno" mas que expressão valores bem diferentes.
Vejam que na sintaxe abaixo:
varmount=`mount -t cifs -o username=delmar,password= //10.1.1.6/bck /mnt/winbackup/delmar/`
eu estava tentando colocar na variável varmount o "resultado". Mas não é o "resultado" que eu preciso, pois o "resultado" neste caso será um ponto de montagem e provavelmente uma variável será incapaz de representar um ponto de montagem. O que eu queria de fato é o "código de retorno" do último comando executado (mount). Nesta caso a solução é:
mount -t cifs -o username=delmar,password= //10.1.1.6/bck /mnt/winbackup/delmar/
if [ $? -eq 0 ]; then
echo "sucesso $?"
else
echo "falha $?"
fi
e assim o "código de retorno" do mount estará no $? e poderei testar se executou o mount com sucesso ou não.
Já na sintaxe abaixo
testemount=`mount | grep delmar | awk {'print $3'}`
desejo obter o "resultado" do comando e não o "código de retorno" do comando.
E o "resultado" do comando será uma string vazia se não encontrar a string delmar em nenhum ponto de montagem ou será o ponto de montagem se encontrar.
Neste caso eu quero uma string que será vazia ou o próprio ponto de montagem.
if [ -n "$testemount" ]; then
#echo "desmontando $testemount porque já está montado"
umount /mnt/winbackup/delmar/
fi
Se eu quisesse o "código de retorno", ou seja, se foi executado com sucesso ou não, acessando $? é bem provável que em 100% das execuções teria sucesso, ou seja, código de retorno 0, independente se encontrasse o ponto de montagem ou não.