Shebang: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 20: Line 20:
* <code>#!/usr/bin/env python</code> - Faili käivitamine Python'ga, kasutades env'd.
* <code>#!/usr/bin/env python</code> - Faili käivitamine Python'ga, kasutades env'd.
Näidetes on näha, et shebang rida võib sisaldada argumente, mis edastatakse interpretaatorile
Näidetes on näha, et shebang rida võib sisaldada argumente, mis edastatakse interpretaatorile
== Omadused ==
"#!" võimaldab skripte kasutada nagu tavalisi käivitatavaid binaarfaile.
Mõned shebang omadused:
* Interpretaatori nimi ei tohi olla tühi.
* Shebang rea pikkus on väiksem kui maksimaalse faili teekonna pikkus.
* $PATH keskkonnamuutujast ei otsita interpretaatorit.
* Interpretaatorit saab kasutada nii täispika kui ka loogise teekonnana. (Loogiline teekond ei ole soovitatav)
* Interpretaatorina ei tohiks kasutada skripte.
* SetUID ei puugi olla kasutatav.


== Autor ==
== Autor ==

Revision as of 23:59, 30 November 2017

Shebang on sümbolite jada, mida kasutatakse skriptide alguses ning mis koosneb "trellidest" ehk numbrimärgist ja hüüumärgist (#!). Shebang on tuntud ka nimedega sha-bang, hashbang, pound-bang, ja hash-pling.

Shebang on kasutusel UNIX-tüüpi operatsioonisüsteemide käivitatavates failides. Kui käivitatavas tekstifailis ehk skriptis on kirjeldatud shebang siis kasutatakse shebangi järel kirjeldatud interpretaatorit kogu ülejäänud koodi käivitamiseks. Ehk siis shebang kirjeldab asukoha argumendi, et käivitada skript argumendis kirjeldatud programmis. Näiteks kui skriptis on shebangi järel kirjeldatud /bin/bash, siis programmi laadija kasutab argumenti /bin/bash ja teab, et antud skripti tuleb käivitada bash programmis, mis asub kataloogis /bin.

Üldjuhul ignoreerib interpretaator shebangi, sest numbrimärge(#) on enamus programmeerimis- ja skriptimiskeeltes tähistatud kui kommentaari. Samuti mitmed programmeerimiskeeled, mis ei kasuta numbrimärki kommentaarina, ignoreerivad numbrimärki ja saavad aru shebang funktsioonist.

Kui skriptifailides on shebang kirjeldamata siis üldjuhul kasutatakse interpretaatorina /bin/sh.

Süntaks

Shebang interpretaatori vorm on järgnev:

#!intepretaator [valikulised-argument]

Kus interpretaator tähistab täispikka kataloogi teekonda käivitatavale programmile. Valikuline-argument tähistab käivitatavale programmile kirjeldatud argumenti.


Näited

Mõned shebang näited:

  • #!/bin/sh - Faili käivitamine Bourne shelliga.
  • #!/bin/bash - Faili käivitamine Bash shelliga.
  • #!/usr/bin/perl -T - Faili käivitamine Perl'ga koos "tainted" argumendiga.
  • #!/usr/bin/env python - Faili käivitamine Python'ga, kasutades env'd.

Näidetes on näha, et shebang rida võib sisaldada argumente, mis edastatakse interpretaatorile


Omadused

"#!" võimaldab skripte kasutada nagu tavalisi käivitatavaid binaarfaile.

Mõned shebang omadused:

  • Interpretaatori nimi ei tohi olla tühi.
  • Shebang rea pikkus on väiksem kui maksimaalse faili teekonna pikkus.
  • $PATH keskkonnamuutujast ei otsita interpretaatorit.
  • Interpretaatorit saab kasutada nii täispika kui ka loogise teekonnana. (Loogiline teekond ei ole soovitatav)
  • Interpretaatorina ei tohiks kasutada skripte.
  • SetUID ei puugi olla kasutatav.

Autor

Nimi: Tanel Peep

Rühm: AK21

Aasta: 2017

Allikad