Portál AbcLinuxu, 26. dubna 2024 11:46


Dotaz: Problém s proměnnou

7.4.2010 08:22 Ljuk
Problém s proměnnou
Přečteno: 133×
Odpovědět | Admin
Ahoj,mám takový problém, v souboru del mám několik set řádků, dejme tomu. Seřadím si je a vyberu jeden řádek, a sloupec o pozici 9. Přesně to, co chci. Přesný název složky. Pak se připojím na ftp a chci tu složku smazat. nejst=slozka_datum připojím se na ftp a chci smazat tu slozku_datum, jenže ve chvíli,kdy chci rm -r $nejst, tak mi to zařve chybu, pravděpodobně nemůžu začínat znakem $. Tak jsem to chtěl dát do uvozovek, rm -r "$nejst"; jenže to pochopí tak, že se z ftp odpojím dřív,než začnu mazat tu složku Napíšu vám se část scriptu,aby to bylo jasné. Nějaké nápady? Doufám,že jsem to rozepsal jasně.

 
        nejst=$(cat del | sort | head -1 | awk '{ print $9 }')
        lftp -c "open -u admin:admin 0.0.0.0;
        cd Public/zaloha;
        rm -r $nejst;
        quit"
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.4.2010 08:56 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Problém s proměnnou
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ man lftp
...
      -c commands
              Execute the given commands and exit. Commands can be separated with a semicolon, ‘&&’ or ‘||’.
Ty tam mas okrem bodkociarok navyse zalomenia riadkov; mozno to je problem. Skus na zaciatok skriptu dat:
#! /bin/sh -x
Dostanes tak debug vypis kazdeho prilazu po expanzii; budes vidiet, ako sa expandovalo $nejst.

Nakoniec mozes skusit dat prikazy do samostatneho skriptu pre lftp(1):
-f script_file
              Execute commands in the file and exit

7.4.2010 09:57 Ljuk
Rozbalit Rozbalit vše Re: Problém s proměnnou
A proč tohle nefunguje?

[root@dbserver Script]# prom=$(cat del) [root@dbserver Script]# $prom : command not foundar_2010_14:42:26 [root@dbserver Script]#

jde to tady takhle:

[root@dbserver Script]# echo $prom slozka__29_Mar_2010_14:42:26 [root@dbserver Script]#

ale v mém připadě zase nefunkční nejst=$(cat del | sort | head -1 | awk '{ print $9 }') lftp -c "open -u admin:admin 0.0.0.0; cd Public/zaloha; rm -r "echo $nejst"; quit"
7.4.2010 10:09 Ljuk
Rozbalit Rozbalit vše Re: Problém s proměnnou
Odpovědět | | Sbalit | Link | Blokovat | Admin
smazal jsem z toho řetězce lftp -c "open -u admin:admin 0.0.0.0; cd Public/zaloha; rm -r $nejst; quit"

quit a už to funguje. Dokáže mi někdo vysvětlit,jakto?

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.