Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Pracovní prostředí => Téma založeno: Janslav 16 Března 2015, 18:38:12
-
Stáhnul jsem si kompilátor FreeBasic, který mi vytvoří ze souboru např. Pokus.bas vytvoří spustitelný soubor Pokus.
Ten pak v terminalu spouštím příkazem ./Pokus a vše funguje OK.
Proč se ale před jméno souboru musí dávat ./ ?
Pokud zkusím spustit program jem příkazem Pokus, píše, že jej to nezná, přitom ale jako soubor to existuje.
Nějaké vysvětlení ?
-
cesty
-
zadej:
echo $PATH
a bude umisti ten soubor nekam, kde shell hleda spustitelne soubory, a nebo si do PATH pridej nejakou dalsi cestu (treba PATH=$PATH:$HOME/bin)
-
Hlavne si nikdy nenastavujte do promenne $PATH adresar . (tecka). Ono by to sice odstranilo nutnost uvadet cestu pred programem, ktery je v aktualnim adresari (tj. napr. ./Pokus), ale je to velke riziko, ma svuj duvod, proc to tam neni defaultne. Navic napsat ./ a zmacknout tabulator (aby se nazev souboru doplnil) je rychlejsi, nez to vypisovat cely :)
-
S tou tečkou souhlas, ale při dobře volených názvech tabulátor funguje v pohodě i bez ./
-
Když zadám v terminalu echo $path, tak není žádná reakce...
-
protože je to case sensitive
-
V Ubuntu se $HOME/bin do $PATH přidává automaticky, pokud existuje.
-
Když zadám v terminalu echo $path, tak není žádná reakce...
zadej:
echo $PATH
a bude umisti ten soubor nekam, kde shell hleda spustitelne soubory, a nebo si do PATH pridej nejakou dalsi cestu (treba PATH=$PATH:$HOME/bin)
prosim zlepsi svuj pristup
-
Už jsem to pochopil. $PATH je systémová proměnná, ve které jsou adresáře, které se prohledávají chce-li se spustit executable file - a já jsem tam ten adresář neměl. Dá se tam přidat, nebo se executable file dá spustit i odjinud, ale před jeho jméno se píše ./ kde tečka znamená sučasný adresář a lomítko je oddělovač adresáře od názvu filu.
Dík za odpovědi.
-
Zdá se že jsi to pochopil správně. Pokud si vytvoříš adresář ~/bin, budeš do něj moci kompilovat programy a ty spouštět bez ./ protože Ubuntu si ho přidá do $PATH při startu následujícím po jeho vytvoření. Ale to bylo popsáno výše.