bash - debugolas kimentese fajlba

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.

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)

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 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.

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.