Which

From ICO wiki
Jump to navigationJump to search

Autor

Sven Rekkaro AK21
Sügis 2014

Sissejuhatus

"which" on lihtne käsk, mis võimaldab leida käsu või skripti käivitusfaili täispika tee, kui see asub ühes süsteemi või kasutaja kaustadest, mis on kirjeldatud keskkonnamuutujas $PATH. Kui kasutaja sisestab Linuxi käsureale käsu, siis kontrollib Linuxi kest (shell) $PATH keskkonnamuutujas kirjeldatud kaustades käsule vastava käivitusfaili olemasolu. Kui sobivat käivitusfaili ei leita, siis kuvatakse veateade "command not found," käivitusfaili olemasolu korral see käivitatakse. Analoogselt Linuxi kestale toimib ka käsklus "which," mis tagastab sisestatud käsu täispika tee, kui käivitusfail leitakse või tagastab veateate kui käsule on lisatud mitte-eksisteeriv optsioon. Programm ei kontrolli $PATH muutujas kirjeldatud kaustades asuvaid Symbolic linke. Programmil on kolm tagastusväärtust:

  • 0 - argumendile vastav käivitusfail leiti.
  • 1 - argumendile vastavat käivitusfaili ei leitud.
  • 2 - käsk sisestati koos vigase võtmega.
[1] (URL: http://linux.about.com/library/cmd/blcmdl1_which.htm) [2] (http://manpages.debian.org/cgi-bin/man.cgi?query=which&apropos=0&sektion=0&manpath=Debian+7.0+wheezy&format=html&locale=en)

Käsu süntaks

Käsk "which" süntaks erineb mõningal määral, olenevalt kasutusel olevast Linux või BSD distributsioonist. Vähemate võimalustega on käsklus Debianil põhinevatel Linuxitel [3] (http://manpages.debian.org/cgi-bin/man.cgi?query=which&apropos=0&sektion=0&manpath=Debian+7.0+wheezy&format=html&locale=en). Keerukam on käsu süntaks teistel Unixil põhinevatel operatsioonisüsteemidel, näiteks Gentoo 2.6.23-gentoo-r8. [4] (http://unixhelp.ed.ac.uk/CGI/man-cgi?which). Käsu kasutamiseks piisab tavakasutaja õigustest.

Süntaks Debianil põhinevatel Linuxitel

[3] http://manpages.debian.org/cgi-bin/man.cgi?query=which&apropos=0&sektion=0&manpath=Debian+7.0+wheezy&format=html&locale=en

which [optsioonid] argument

Optsioonid:

-a prindib välja kõikide argumentide kõik leitud täispikad teed. Ilma võtmeta "-a" prinditakse ainult esimene leitud väärtus

argument- programmi, skripti või käsu nimetus. Argumente võib sisestada mitu.

Teised Unixi-laadsed operatsioonisüsteemid

[4] http://unixhelp.ed.ac.uk/CGI/man-cgi?which

which [võtmed] [--] argument

Erinevalt Debianist on kasutatavate võtmete hulk oluliselt suurem. Argumendiks on otsitava käsu, skripti või programminimi. Argumente võib olla mitu. Tulemus tagastatakse iga argumendi kohta eraldi.

      --all, -a

Prindib ekraanile kõik sobivad käivitusfailid, mis PATH muutujas kirjeldatud kataloogidest leiti, mitte ainult esimese.

      --read-alias, -i

Loeb aliased standard sisendist (stdin), tagastab sobivad standard väljundile (stdout). See on kasulik kombinatsioon, kuis käsu which jaoks on kasutusel alias. Näiteks: alias which=?alias | which -i?.

      --skip-alias

Ignoreerib võtit: `--read-alias?, kui see peaks olema sisestatud. Kasulik kui otsitakse algseid käivitusfaile ja samal ajal on aliases või funktsioonis kasutusel võti `--read-alias?

      --read-functions

Loeb shelli funktsiooni definitsiooni standard sisendist (stdin), väljastab sobivad vasted standard väljundil (stdout). See on kasulik kombinatsioon, kui kasutatakse shelli funktsiooni which käsu enda jaoks. Näiteks: which() { declare -f | which --read-functions $@ } export -f which

      --skip-functions
          Ignoreerib valikud '--read-functions?, kui see peaks olemas sisestatud. Kasulik, kui otsitakse konkreetselt normaalseid binaarfaile, samal ajal, kui on aktiivne 'read-functions?' optsioon which funktsiooni või aliase seadistuses.


      --skip-dot

Käsk ignoreerib PATH keskkonnamuutujas kirjeldatud punktiga algavaid kaustu.

      --skip-tilde

Käsk ignoreerib PATH keskkonnamuutujas kirjeldatud kaustu, mis alavad tildega ja binaarfaile, mis asuvad HOME kataloogis.

      --show-dot

Kui kaust PATH muutujas algab punktiga ja otsitav käivitusfail asub antud kataloogis, siis väljastatakse ekraanile "./programminimi," selle asemel, et kuvada faili täispikka teed.

      --show-tilde

Väljastab tilde, kui otsingutulemus asub HOME kataloogis. Antud valikut ignoreeritakse, kui käsk on väljakutsutud juurkasutajana.

      --tty-only

Stop processing options on the right if not on tty.

      --version,-v,-V

Print version information on standard output then exit success- fully.

      --help

Print usage information on standard output then exit successfully.

Näited

Kokkuvõte

Kasutatud kirjandus