Portál AbcLinuxu, 10. května 2025 06:22
Pokud se skript jmenuj třeba skript.sh, tak stačí:
chmod +x skript.sh ./skript.sh
Ten první je nutné provést jen na počátku -- nastaví se tím příznak spustitelnosti souboru.
Ještě bych dodal, že skript můžeš spustit taky takhle:
# Budu předpokládat, že máš tento skript: /cesta/skript.sh # Spustíš ho taky takhle: source /cesta/skript.sh # nebo . /cesta/skript.sh
bash jmenoskriptu.sh
.
Máte pravdu. Ale myslel jsem to dobře, protože u většiny shellových skriptů je jedno, jak je "spustíte".
noexec
, když z toho pak chcete něco spouštět? :-)
sh ./skript
. Jinou výhodu totiž v tom nevidím.
noexec
? Nebo naopak: když se to mountuje s noexec
, proč z toho pak chtít něco spouštět? Nemluvě o tom, že se na ten noexec
stejně spolehnout nedá (nejen u skriptů).
sh
by byl asi default, ale u jiných interpretrů by to výhoda byla.
./skript
a sh ./skript
, tak mu odpovím podle svého nejlepšího svědomí. Protože jinak mezi tím není žádný (myšleno viditelný, opravdu se nehodlám rýpat v tom, jak se skript volá) rozdíl není.
sh ./muj_spustitelny_soubor znamená, že se nejprve spustí sh (který je většinou jen symlink na bash, takže se spustí bash), a ten spustí ./muj_spustitelny_soubor. V ./muj_spustitelny_soubor je na začátku uvedeno, v čem (bash, python..) mají níže uvedené skripty běžet. Takže ve skutečnosti se bash spouští 2x.
Nemáte pravdu. Jednak si můžete snadno ověřit, že to tak není, jednak kdyby to tak bylo, muselo by se spouštění skriptu zacyklit (jak by ten druhý shell poznal, že je druhý a ne první?).
Ten soubor asi nemá příznak pro spouštění (chmod +x blbost
by to mělo spravit).
ls -l tvoj_skript file tvoj_skript head tvoj_skript
chmod +x soubor.run ./soubor.run
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.