Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Jakub Neburka 26. 03. 2013, 14:48:08
-
Dobrý den.
Ladím shell skript a konečně jsem přišel na chybu. Chtěl bych se ale zeptat, zda mi můžete někdo dát tip, jak elegantně řešit můj problém:
Jde o to, že jsem si naivně myslel (po přečtění man stránky), že:
test -e soubor
otestuje, zda cesta 'soubor' existuje a že je úplně jedno, jakého je soubor typu (file, dir, device, link, atd). Jaké bylo moje překvapení, když jsem zjistil, že pokud je 'soubor' symbolický link, tak test selže.
Můžete mi někdo poradit, jak otestovat, že soubor s danou cestou existuje nezávisle na jeho typu a to elegantněji než udělat OR z postupného testování na všechny typy?
Myslíte, že:
test -e soubor || test -h soubor
může být už konečné řešení?
Díky..
-
Omlouvám se za zbytečné téma. Problém vyřešen.
test -e symlink
selže pokud symlink ukazuje na neexistující soubor a to dává dobrý smysl.
Berte téma za uzavřené. ;]
-
A co tak skusit:
ls
alebo stat?
V kombinacii s testovanim navratovej hodnoty... $?
-
Inak, samozrejme, to spravanie je v
man test
zdokumentovane:
"Except for -h and -L, all FILE-related tests dereference symbolic links. "
-
Inak, samozrejme, to spravanie je v
man test
zdokumentovane:
"Except for -h and -L, all FILE-related tests dereference symbolic links. "
Jojo, až dole. Tam jsem asi nikdy u testu nedošel :) Vždycky jsem čerpal jen z toho, co je u -e.