abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
dnes 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
včera 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
včera 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 4
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 10
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
20.1. 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
20.1. 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
20.1. 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (10%)
Celkem 362 hlasů
 Komentářů: 25, poslední včera 13:34
Rozcestník
Reklama

Dotaz: Jak na kontrolu načtení souboru

8.9.2013 19:00 Marky
Jak na kontrolu načtení souboru
Přečteno: 439×
DD, chtěl bych se zeptat, jak se dá udělat v bash/shell tohle, příklad je pro PHP. Děkuji za ochotu ;)
if(!include_once 'file.php'){
  echo("File not loaded... :-(");
  exit("Error!");
}

Odpovědi

8.9.2013 19:29 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Tohle se ale v PHP už dávno nedělá.

Použij příkaz trap.
8.9.2013 19:53 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Když uděláš:
. file.bash

tak v $? je uložena návratová hodnota posledního příkazu z file.bash, pokud soubor neexistuje tak to zklame (tedy nebude tam 0).

Tedy můžeš testovat $?, ale netestuješ přímo to, na co se ptáš…

Pokud je file.bash tvůj script a nakonci máš exit 0 , tak přes $? otestuješ jestli se korektně provedl nebo ne a to 'ne' zahrnuje i neexistenci.

PS: Ta PHP konstrukce mi nedává moc smysl…

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
8.9.2013 20:05 Marky
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Vyzkouším, děkuji, Ihmo, jak se v php už nedělá? Co je na té konstrukci špatně?
8.9.2013 20:09 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Prostě uděláš
include_once 'file.php';
O zbytek se postarají výjimky.
8.9.2013 20:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru

Jestli je include fatální v daný okamžik, tak pak:

require_once 'file.php';
a je to. pokud není (použije se include), tak to zklame kde má…

Možná konstrukce:

if(!(@include_once 'file.php')) 
  throw new myInclException("Bylo tu, není tu");
by možná dávala (mně) smysl.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
8.9.2013 20:38 Kit
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
I fatální chyba se v PHP dá odchytit přes register_shutdown_function(). Je zbytečné kvůli tomu definovat další výjimku.
8.9.2013 21:00 Marky
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Chlapy a co nějak takto?
exitus(){
echo "Soubor se nepodařilo načíst.."
exit 1
}

. file.bash || exitus
nebo jen
. file.bash || exit 1
8.9.2013 21:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Jak jsem psal výše, testuješ tím, že poslední příkaz obsažený ve file.bash (skončil bez chyby) vs. (poslední příkaz skončil s chybou nebo soubor se nepodařilo vložit/provést).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.9.2013 09:18 Marky
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
Jak jsem psal výše, testuješ tím, že poslední příkaz obsažený ve file.bash (skončil bez chyby) vs. (poslední příkaz skončil s chybou nebo soubor se nepodařilo vložit/provést).
Ale toho příkazem . /my.sh || exitus docílím i tak, na víc je to jediné co funguje, jelikož když budu chtít testovat $? == 0 tak přece nemůžu dát do sourcovaného scriptu na konec exit 0 :-D jelikož by se hned celý script ukončil.. Dík
11.9.2013 19:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru

Oops, velké sorry za exit 0, mělo být return 0 - nějak mi to ujelo.

Přikazem
. /my.sh || exitus
docílíš úplně to samé co
. /my.sh
if [ $? != 0 ]; then exitus;  fi
bo to je to de-facto to samé jen jinak napsané, tedy stále platí, že chyba nastane pokud poslední příkaz vkládaného souboru skončí s chybou nebo soubor neexistuje.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Tarmaq avatar 9.9.2013 16:41 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
FILE=foo.sh

if test -e $FILE; then
    . $FILE
else
    echo "File not loaded... :-(";
    exit 1
fi
Don't panic!
11.9.2013 10:36 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru

Podla mojho nazoru rovno otestovat na citanie a to tak v logickej nadvaznosti na spravu v pripade nemoznosti nacitania daneho suboru a najma na fakt, ze overenie existencie suboru este nic nevravi o moznosti ho citat, co je v tomto pripade klucove. Vid:

patrik@domov:~$ stat /etc/shadow
  File: ‘/etc/shadow’
  Size: 1009      	Blocks: 8          IO Block: 4096   regular file
Device: 12h/18d	Inode: 112385      Links: 1
Access: (0640/-rw-r-----)  Uid: (    0/    root)   Gid: (   42/  shadow)
Access: 2013-09-06 10:12:39.997458015 +0100
Modify: 2013-09-06 10:12:39.997458015 +0100
Change: 2013-09-06 10:12:40.005458028 +0100
 Birth: -
patrik@domov:~$ groups 
patrik lp cdrom floppy sudo audio dip video plugdev netdev
patrik@domov:~$ echo $UID 
1000
patrik@domov:~$ test -e /etc/shadow
patrik@domov:~$ echo $?
0
patrik@domov:~$ test -r /etc/shadow
patrik@domov:~$ echo $?
1
Tarmaq avatar 11.9.2013 12:06 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
ano, mas samozrejme pravdu, blbe jsem pochopil zadani..
Don't panic!
11.9.2013 21:21 mkmm
Rozbalit Rozbalit vše Re: Jak na kontrolu načtení souboru
V bashi je primo test na citelnost souboru, takze by melo stacit
test -r soubor && . soubor || { echo "Nnenacteno"; exit 1; }

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.