Portál AbcLinuxu, 14. května 2025 00:42

Dotaz: expect - interpretace příkazu cd

12.7.2013 07:46 liku | skóre: 10
expect - interpretace příkazu cd
Přečteno: 330×
Odpovědět | Admin
zdravím, v doméně pod sambou mám cca 90 profilů a u každého potřebuji upravit registry v NTUSER.DAT. Našel jsem si k tomu program chntpw, přes který to mohu na serveru udělat. Protože mám však takovéto množství profilů, dělal bych to strašně dlouho. Chtěl jsem si na to napsat skript s použitím expect. Mám však problém v tom, že pokud se chci pohybovat v rámci registrů přes cd (což v interaktivním modu je možné), expect mi neinterpretuje příkaz cd. Můžete mi prosím poradit, jak to udělat. Jednoduchou zkušební verzi mám tuto:
#!/bin/bash
/usr/bin/expect -f - > /root/bin/profily.out << EOF
spawn /usr/bin/chntpw -e /home/liku/testovaci/NTUSER.DAT
expect  "> "
send "cd \Software \r"
expect "\Software>"
send "q\r"
expect eof
EOF
Zobrazí se mi:
Simple registry editor. ? for help.

> cd Software
Key Software  not found!

>
Když však příkaz "cd \Software" udělám v interaktivně v chntpw, bez problému se mi aktualání adresář přehodí.

Díky moc za pomoc Libor
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.7.2013 09:12 Marek
Rozbalit Rozbalit vše Re: expect - interpretace příkazu cd
Odpovědět | | Sbalit | Link | Blokovat | Admin
"\S" sa v bashi interpretuje ako S, skuste pouzit "\\S", resp. pouzit jednoduche uvodzovky '...'
12.7.2013 09:39 Marek
Rozbalit Rozbalit vše Re: expect - interpretace příkazu cd

mala oprava, nie bash, ale samotny prikaz expectu, send, to interpretuje tak, ako som popisal

riesenie cez '...' asi nebude fungovat, kedze sa pouzivaju escape znaky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.