Ero sivun ”Väite” versioiden välillä
Siirry navigaatioon
Siirry hakuun
pEi muokkausyhteenvetoa |
p (artikkelin terminologia palautettu alkuperäiseen) |
||
Rivi 1: | Rivi 1: | ||
''' | '''Valitsin''', '''vipu''', '''argumentti''', '''parametri''', '''lippu''' eli optio on [[komentorivi]]llä annettava ohjelman toimintaan vaikuttava lisäohje, joka yleensä kirjoitetaan ennen mahdollisten käsiteltävien tiedostojen nimiä. Tässä esitellään tavallisimpia käytäntöjä. | ||
== Perusteet == | |||
Unix-pohjaisten käyttöjärjestelmien, kuten Linux-jakeluitten kanssa, komennot annetaan tavallisimmin tyyliin | |||
$ komento -a -b -c tiedosto ... | |||
Valitsimet on myös mahdollista listata yhtenäisenä ryhminä. | |||
$ komento -abc tiedosto ... | |||
== Antaminen == | == Antaminen == | ||
Kaikki ohjelmat eivät aina ota | Kaikki ohjelmat eivät aina ota valitsimia. | ||
$ true ''' | $ [[true]] '''valitsin''' | ||
'''Paksulla''' merkitty teksti on | '''Paksulla''' merkitty teksti on valitsin. [[true]] ei välitä valitsimista, joita käyttäjä sille antaa, joten sen käyttäytyminen ei muutu. | ||
Jotkin ohjelmat eivät tarvitse | Jotkin ohjelmat eivät tarvitse valitsimia. | ||
$ | $ [[cat]] | ||
[[cat]] ottaa muutaman | cat ottaa muutaman valitsimen, jos se niitä saa, mutta se ei tarvitse niitä toimiakseen. [[GNU]]-versio cat:ista ottaa muun muassa tämän: | ||
$ cat '''--version''' | $ cat '''--version''' | ||
Tämä tulostaa näytölle versiotiedot. | Tämä tulostaa näytölle versiotiedot. | ||
cat (GNU coreutils) | cat (GNU coreutils) 9.1 | ||
Copyright | Copyright (C) 2022 Free Software Foundation, Inc. | ||
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. | License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. | ||
This is free software: you are free to change and redistribute it. | This is free software: you are free to change and redistribute it. | ||
Rivi 21: | Rivi 27: | ||
Kirjoittaneet Torbjorn Granlund ja Richard M. Stallman. | Kirjoittaneet Torbjorn Granlund ja Richard M. Stallman. | ||
Jotkin ohjelmat vaativat | Valitsimet ja niiden käsittely on ohjelmakohtaisia, mutta joitakin valitsimia käytetään usein tiettyihin tarkoituksiin. | ||
Jotkin ohjelmat vaativat valitsimia. | |||
$ [[gcc]] | $ [[gcc]] | ||
'''gcc: <span style="color: red;">fatal error:</span>''' no input files | '''gcc: <span style="color: red;">fatal error:</span>''' no input files | ||
Rivi 29: | Rivi 38: | ||
[ei tulostetta] | [ei tulostetta] | ||
Joillain | Joillain valitsimilla on tarkentajia, jotka annetaan kyseisen valitsimen jälkeen. Yleensä tarkentaja erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat sen kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan tarkentajistaan "="-merkillä. Jos tarkentajia on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä. | ||
valitsin, jolla voi olla tarkentaja, pitää laittaa valitsinryhmän viimeiseksi: | |||
komento -vglo tulostiedosto -d erotin tiedosto ... | komento -vglo tulostiedosto -d erotin tiedosto ... | ||
Jos haluat käyttää tiedostoa, joka alkaa "-"-merkillä (''"-ihmetiedosto"'') tai jos viimeisellä | Jos haluat käyttää tiedostoa, joka alkaa "-"-merkillä (''"-ihmetiedosto"'') tai jos viimeisellä valitsimella on tarkentaja, jota nyt ei käytetä, valitsimien ja niiden tarkentajien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan [[Standardivirrat|standardivirtoja]]. | ||
=== Kuinka selvittää ohjelman | === Kuinka selvittää ohjelman valitsimet? === | ||
Voit tarkistaa | Voit tarkistaa valitsimet hakemalla netistä, katsomalla [[man]]-ohjelmalla ja usein valitsimilla ''-h'' tai ''--help''. | ||
=== Yleisiä | === Yleisiä valitsimia === | ||
{{Huomautus|Ota huomioon, että kaikki ohjelmat eivät käytä samoja valitsimia samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi valitsimia.}} | |||
-f "force", "tiedän mitä teen, älä huoli" | -f "force", "tiedän mitä teen, älä huoli" | ||
-h "help", lyhyt [[dokumentaatio|ohje]] komennon käytöstä | -h "help", lyhyt [[dokumentaatio|ohje]] komennon käytöstä | ||
Rivi 46: | Rivi 55: | ||
-o "output", luotava tiedosto ([[GNU]]-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto) | -o "output", luotava tiedosto ([[GNU]]-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto) | ||
== Erilaisia | == Erilaisia valitsintyylejä == | ||
[[GNU]]-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen | |||
Valitsimilla voi olla parametreja, jotka annetaan kyseisen valitsimen jälkeen. Yleensä parametri erotetaan valitsimesta välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat parametrin kirjoittamista yhteen valitsimen kanssa. GNU-tyyliset pitkät valitsimet erotetaan parametreistään "="-merkillä. Jos parametrejä on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä. | |||
Valitsin, jolla voi olla parametri, pitää laittaa valitsinryhmän viimeiseksi: | |||
komento -vglo tulostiedosto -d erotin tiedosto ... | |||
Jos halutaan käyttää tiedostoa, joka alkaa "-"-merkillä (''"-ihmetiedosto"'') tai jos viimeisellä valitsimella voisi olla parametri, jota nyt ei käytetä, valitsimien ja niiden parametrien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan [[Standardivirrat|standardivirtoja]]. | |||
komento -o - -d : -- -ihmetiedosto | |||
txt2ps -header - tiedosto.txt > tiedosto.ps | |||
[[GNU]]-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen valitsimia ja omia kahdella viivalla alkavia pitkiä valitsimiaan: | |||
-h | -h | ||
--help | --help | ||
Rivi 56: | Rivi 77: | ||
-o tiedosto | -o tiedosto | ||
--output=tiedosto | --output=tiedosto | ||
[[BSD]]-perinteessä (?) | |||
[[BSD]]-perinteessä (?) valitsimien edessä ei käytetä viivoja eikä valitsimia voi jakaa ryhmiin: | |||
[[ps]] aux | [[ps]] aux | ||
[[tar]] xzf kohdetiedosto.tar tiedosto1 tiedosto2 ... | [[tar]] xzf kohdetiedosto.tar tiedosto1 tiedosto2 ... | ||
[[X Window System|X]]-ohjelmissa käytetään | |||
[[X Window System|X]]-ohjelmissa käytetään valitsimina lyhenteitä tai kokonaisia sanoja. GNU-standardista poiketen kokonaisina sanoina määriteltäviä valitsimia ei edellä kuin yksi viiva (-). | |||
-help | -help | ||
-version | -version | ||
-geometry 100x100 | -geometry 100x100 | ||
-bg taustaväri | -bg taustaväri | ||
Monet ohjelmat käyttävät useamman perinteen mukaisia | |||
Monet ohjelmat käyttävät useamman perinteen mukaisia valitsimia, esimerkiksi jotta ne käyttäytyisivät odotusten mukaisesti riippumatta siitä, mikä perinne on käyttäjälle tutumpi tai minkä perinteen mukaista ohjelmaa skripti on kirjoitettu käyttämään. | |||
== Ottaminen == | == Ottaminen == | ||
=== [[C]] === | === [[C]] === | ||
C-kielellä | C-kielellä valitsimet menevät pääfunktiolle. Yksi on kokonaisluku ja toinen taulukko merkkijonoista. Näille voi periaatteessa antaa mitkä tahansa nimet, mutta tyypillisesti ne ovat '''argc''' (argument count) ja '''argv''' (argument vector). | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
Rivi 74: | Rivi 100: | ||
int main(int argc, char *argv[]) { | int main(int argc, char *argv[]) { | ||
//argv sisältää | //argv sisältää valitsimet, argc kertoo argv:n pituuden | ||
//argv:n ensimmäinen solu sisältää ohjelman nimen | //argv:n ensimmäinen solu sisältää ohjelman nimen | ||
printf(" | printf("Valitsimien lukumäärä on %i\n", argc); | ||
for(int i=0; i<argc; ++i) | for(int i=0; i<argc; ++i) | ||
printf(" | printf("valitsin no. %i on: %s\n", i, argv[i]); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Jos käännät tuon ohjelman tiedostoon " | Jos käännät tuon ohjelman tiedostoon "valitsinotto", nämä tulostukset syntyvät: | ||
$ ./ | $ ./valitsinotto | ||
Valitsimien lukumäärä on 1 | |||
valitsin no. 0 on: ./valitsinotto | |||
$ ./ | $ ./valitsinotto jgaoirjg igaoierj | ||
Valitsimien lukumäärä on 3 | |||
valitsin no. 0 on: ./valitsinotto | |||
valitsin no. 1 on: jgaoirjg | |||
valitsin no. 2 on: igaoierj | |||
=== [[Python]] === | === [[Python]] === | ||
Python varastoi | Python varastoi valitsimensä taulukossa sys.argv, joka kuuluu sys-kirjastoon. | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
#!/usr/bin/python3 | #!/usr/bin/python3 | ||
Rivi 101: | Rivi 127: | ||
import sys | import sys | ||
print(" | print("Valitsimien lukumäärä on", len(sys.argv)); | ||
for i in range(len(sys.argv)): | for i in range(len(sys.argv)): | ||
print(" | print("valitsin no.", i, "on:", sys.argv[i]) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Jos tallennat tuon ohjelman tiedostoon " | Jos tallennat tuon ohjelman tiedostoon "valitsinotto.py", nämä tulostukset syntyvät: | ||
$ ./ | $ ./valitsinotto.py | ||
Valitsimien lukumäärä on 1 | |||
valitsin no. 0 on: ./valitsinotto.py | |||
$ ./ | $ ./valitsinotto.py jgaoirjg igaoierj | ||
Valitsimien lukumäärä on 3 | |||
valitsin no. 0 on: ./valitsinotto.py | |||
valitsin no. 1 on: jgaoirjg | |||
valitsin no. 2 on: igaoierj | |||
[[Luokka:Komentorivi]] | [[Luokka:Komentorivi]] | ||
[[Luokka:Käsitteet]] | [[Luokka:Käsitteet]] |