Tengo el siguiente script:

#!/bin/sh
BACKUP=/respaldoBD
NOW=$(date +"%d_%m_%Y")
SMBCLIENT="$(which smbclient)"
DBS="zabbix"
for db in $DBS
do
  FILE="mysql_$db.$NOW.gz"
  echo $FILE
  PARM="prompt; recurse; mput $FILE; exit;"
  for f in $FILE
  do
    $SMBCLIENT //192.168.3.57/publica -A $BACKUP/.smbclient -c "\""$PARM"\$
  done
done

Cuando ejecuto el script, solo obtengo "Domain = [SEGCAT] OS = [Windows 8.1 Pro 9600] Server = [Windows 8.1 Pro 6.3]" y el archivo no se copia.

Si hago eco de la línea $ smbclient, y la copio y la pego directamente, copiará el archivo perfectamente. No sé lo que está pasando, no tiene sentido para mí.

EDITAR: la solución fue reemplazar la línea $ SMBCLIENT con: $ SMBCLIENT //192.168.3.57/publica -A $ BACKUP / .smbclient -c "prompt; recurse; mput $ FILE; exit;"

user356042
fuente