Jake uvozovky v commandu smbclienta?

Marian Cavojsky cavo+konf na cavo.sk
Pátek Leden 25 16:21:51 CET 2008


On Fri, Jan 25, 2008 at 02:35:06PM +0100, Roman Mraz wrote:
> Vystup z echo $CMD je samozrejme 'prompt off; mget *_Friday.*'
> 
> Rozdil mezi jednoduchymi a dvojitymi uvozovkami chapu.
> 
> Vystup z echo smbclient //192.168.1.2/c -A `dirname $0`/server.auth -D 
> $INIT_DIR -c $CMD -d 3 je, jak jinak:
> smbclient //192.168.1.2/c -A ./scripts/server.auth -D Backups -c 'prompt 
> on; mget *_Friday.*' -d 3
> 
> No a tady je prave ten problem, ze to co echo vypise je spravne, ale 
> zadne kopirovani se nekona.
> Pokud to vsak napisu na jeden radek, tzn. smbclient //192.168.1.2/c -A 
> `dirname $0`/server.auth -D $INIT_DIR -c "prompt off; mget *_$(date 
> +%A).*", tak je to OK.

Mam pocit, ze zjavne nechapete, kedy sa co spracovava.

Ked sa uvodzovky (jednoduche, alebo dvojite) dostanu do retazca, tak uz
ich shell nepsracovava, jedine, ze by ste pouzili 'eval'.

Na to aby ste zabezpecili, ze sa vykona v smbclient sada prikazov,
tak treba ulozit do premennej tie prikazy a ouvodzovkovat ich az ked sa
predavaju ako argument pre prikaz (tie uvodzovky tam nie su pre
smbclient, ale pre shell aby predal cely retazec ako jeden argument.)

CMD="prompt off; mget *_$(date +%A).*"
smbclient //192.168.1.2/c -A `dirname $0`/server.auth -D $INIT_DIR -c "${CMD}"


Myslim, ze takto by to mohlo fungovat. :-)

-- 
Marian



Další informace o konferenci Linux