Sziasztok,
van egy scriptem aminek az elejere betettem #!/bin/bash -x
hogy debugoljon.
Ez mukodik is, kiirja a kimenetre a dolgokat ha relativ eleresi uttal inditom a scriptet, de ha absolute eleresi uttal akkor nem.
Tehat igy mukodik:
./script_file.sh
de igy mar nem ir ki semmit sem a kimenetre sem az error csatornaba:
sh /home/en/script_file.sh
Van itt valami csel, vagy miert mukodik ez igy?
Elore is koszonom.
- 846 megtekintés
Hozzászólások
Hm, inkább a kérdés tűnik cselnek :D
"sh /home/en/script_file.sh"
Az sh jó esetben link a bash-ra, de még ez se biztos. Vagy úgy indítod el, hogy
bash -x /home/en/script_file.sh
Vagy ha a scriptbe be van írva a -x , akkor egyszerűen:
/home/en/script_file.sh
persze ez utóbbi esetben muszáj, hogy a scriptnek legyen végrehajtási jogosultsága. (chmod +x script_file.sh)
- A hozzászóláshoz be kell jelentkezni
Koszonom a valaszt, igazabol egy fajlba akarom a debugot, csak gondoltam ha nem ir az stdout-ra akkor fajlba se fog.
Most igy mukodik:
/home/en/script_file.sh > /home/en/output 2>&1
De ha csak a kimenetet vagy errort iranyitom a fajlba akkor nem megy.
Rosszul csinalom?
/home/en/script_file.sh > /home/en/output
vagy
/home/en/script_file.sh 2> /home/en/output
Igy az stdout-ra ir.
- A hozzászóláshoz be kell jelentkezni
/home/en/script_file.sh 2>&1 | tee /home/en/output
esetleg?
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
/home/en/script_file.sh 2> /home/en/output
Ez a megoldás nekem működik.
[/tmp]$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
- A hozzászóláshoz be kell jelentkezni
Igy mar nekem is :-) . egy space volt a 2 utan, azert nem ment es persze ide space nelkul irtam (bocs).
- A hozzászóláshoz be kell jelentkezni
a file elejen a #!/.... -al adod meg milyen scriptertelmezot inditson a rendszer, ez lehet barmi: php, pike, perl, bash stb. A sh pedig egy alias szokott lenni szinten lehet barmi: bash, zsh stb.
Elhagyod a sh es mukodni fog.
Egyebkent en nem tamogatom a sh hasznalatat egy megirt tobbszor hasznalt file eseteben, oda is erdemes kiirni a bash-t, de legjobb a fileba.
- A hozzászóláshoz be kell jelentkezni
Már előttem leírták, szóval sokat nem büfögök ide.
A
#!/bin/bash
sor (avagy shebang) jelzi a rendszer számára, hogy milyen értelmezőt használjon az állomány feldolgozásához. Ez pl. akkor hasznos (és ajánlott mindig alkalmazni), amikor nem adod meg explicite az állományt értelmező programot és/vagy nem shell script-et (vagy az alapértelmezetten beállított értelmező által feldolgozható tartalmat) tartalmaz az állomány.
Szóval vagy shebang vagy
bash -x script_file.sh
.
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni