Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Martina 07. 11. 2017, 20:30:33
-
Dobrý večer. Chtěla bych se zeptat místních odborníků jak bych mohla načíst všechny soubory které jsem uložila v nějaké adresářové struktuře? Jedná se o shell/bash. Na prvním řádku mám napsáno
#!/bin/bash
V souborech jsou funkce. Mám do každého souboru taky ten řádek vložit, nebo stačí jen v tom hlavním?
Je lepší načítat soubory pomocí "." nebo "source"?
Děkuji všem za odpověď. M.
-
source <(find . -type f -name '*.sh' -not -name $0 | xargs cat)
pokud je to jiny adresar nez ve kterem je skript, do ktereho importujete, tak tam nemusi byt -not -name $0.
-
Je lepší načítat soubory pomocí "." nebo "source"?
Znate nejaky duvod, proc by to nemelo byt jedno? Tecka setri prsty a klavesnici.
-
ano, bud source, nebo "." - oboje je spravne. viz toto:
source is a synonym for dot/period '.' in bash, but not in POSIX sh, so for maximum compatibility use the period. (zdroj: https://ss64.com/bash/source.html (https://ss64.com/bash/source.html))
Mohlo by to vypadat nejak takhle:
#!/bin/bash
. ./funkce/math.sh
. ./funkce/string.sh
. /usr/local/whatever/blabla.sh
fce1
x = $(fce2)
squereX $x
samotne soubory s funkcema pak uz nemusi mit #!/bin/bash na zacatku a imho by mit ani nemeli, ale treba to nicemu nevadi... v bashi uz to ale jednou pusteny je od toho volaciho skriptu.
-
ano, bud source, nebo "." - oboje je spravne. viz toto:
source is a synonym for dot/period '.' in bash, but not in POSIX sh, so for maximum compatibility use the period. (zdroj: https://ss64.com/bash/source.html (https://ss64.com/bash/source.html))
Já preferuji návyk na "source", protože funguje jak v bashi, tak v tcsh - pokud budete přeskakovat mezi těmito shelly (např. linux vs. freebsd), pak je pohodlnější navyknout si takto.
-
Je lepší načítat soubory pomocí "." nebo "source"?
Znate nejaky duvod, proc by to nemelo byt jedno? Tecka setri prsty a klavesnici.
V Bashi je to sice jedno, ale:
- jsou lidé, kteří to neví
- je rozdíl v čitelnosti takového příkazu
- může být problém s přenositelností na jiný shell
- různé projekty mohou mít různý code-style