Ero sivun ”Väite” versioiden välillä
p (→C) |
pEi muokkausyhteenvetoa |
||
Rivi 1: | Rivi 1: | ||
'''Väite''', '''argumentti''' tai '''parametri''' on ohjelmalle [[pääte|päätteessä]] annettu lisätieto siitä, kuinka ohjelman tulisi pyöriä. | '''Väite''', '''valitsin''', '''argumentti''' tai '''parametri''' on ohjelmalle [[pääte|päätteessä]] annettu lisätieto siitä, kuinka ohjelman tulisi pyöriä. | ||
Ota huomioon, että kaikki ohjelmat eivät käytä samoja väitteitä samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi väitteitä. | Ota huomioon, että kaikki ohjelmat eivät käytä samoja väitteitä samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi väitteitä. | ||
Rivi 28: | Rivi 28: | ||
$ gcc '''ohjelma.c -o ohjelma''' | $ gcc '''ohjelma.c -o ohjelma''' | ||
[ei tulostetta] | [ei tulostetta] | ||
Joillain väitteillä on tarkentajia, jotka annetaan kyseisen väitteen jälkeen. Yleensä tarkentaja erotetaan väitteestä välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat sen kirjoittamista yhteen väitteen kanssa. GNU-tyyliset pitkät väitteet erotetaan tarkentajistaan "="-merkillä. Jos tarkentajia on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä. | |||
Väite, jolla voi olla tarkentaja, pitää laittaa väiteryhmän viimeiseksi: | |||
komento -vglo tulostiedosto -d erotin tiedosto ... | |||
Jos haluat käyttää tiedostoa, joka alkaa "-"-merkillä (''"-ihmetiedosto"'') tai jos viimeisellä väittellä on tarkentaja, jota nyt ei käytetä, väitteiden 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 väitteet? === | === Kuinka selvittää ohjelman väitteet? === | ||
Voit tarkistaa väitteet hakemalla netistä, katsomalla [[man]]-ohjelmalla ja usein väitteillä ''-h'' tai ''--help''. | Voit tarkistaa väitteet hakemalla netistä, katsomalla [[man]]-ohjelmalla ja usein väitteillä ''-h'' tai ''--help''. | ||
=== Yleisiä väitteitä === | |||
Muistutus: kaikki ohjelmat eivät käytä samoja väitteitä samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi väitteitä. | |||
-f "force", "tiedän mitä teen, älä huoli" | |||
-h "help", lyhyt [[dokumentaatio|ohje]] komennon käytöstä | |||
-v "verbose", enemmän tietoa ohjelman edistymisestä tai tekemisistä suorituksen aikana (joissakin ohjelmissa <tt>-v</tt>:n määrittely useampaan kertaan (esimerkiksi <tt>-vvv</tt>) tuottaa vielä tarkempaa tietoa) | |||
-V "version", ohjelman versio | |||
-o "output", luotava tiedosto ([[GNU]]-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto) | |||
== Erilaisia väitetyylejä == | |||
[[GNU]]-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen väitteitä ja omia kahdella viivalla alkavia pitkiä väitteitään: | |||
-h | |||
--help | |||
-v | |||
--verbose | |||
-V | |||
--version | |||
-o tiedosto | |||
--output=tiedosto | |||
[[BSD]]-perinteessä (?) väitteiden edessä ei käytetä viivoja eikä niitä voi jakaa ryhmiin: | |||
[[ps]] aux | |||
[[tar]] xzf kohdetiedosto.tar tiedosto1 tiedosto2 ... | |||
[[X Window System|X]]-ohjelmissa käytetään väitteinä lyhenteitä tai kokonaisia sanoja. GNU-standardista poiketen kokonaisina sanoina määriteltäviä väitteitä ei edellä kuin yksi viiva (-). | |||
-help | |||
-version | |||
-geometry 100x100 | |||
-bg taustaväri | |||
Monet ohjelmat käyttävät useamman perinteen mukaisia väitteitä, 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ä väitteet menevät pääfunktiolle. Yksi on kokonaisluku ja toinen taulukko merkkijonoista. Näille voi periaatteessa antaa mitkä tahansa nimet, mutta tyypillisesti . | C-kielellä väitteet 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 61: | Rivi 95: | ||
[[Luokka:Komentorivi]] | [[Luokka:Komentorivi]] | ||
[[Luokka:Käsitteet]] |
Versio 26. toukokuuta 2022 kello 21.30
Väite, valitsin, argumentti tai parametri on ohjelmalle päätteessä annettu lisätieto siitä, kuinka ohjelman tulisi pyöriä.
Ota huomioon, että kaikki ohjelmat eivät käytä samoja väitteitä samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi väitteitä.
Antaminen
Kaikki ohjelmat eivät aina ota väitteitä.
$ true väite
Paksulla merkitty teksti on väite. true ei välitä väitteistä, joita käyttäjä sille antaa, joten sen käyttäytyminen ei muutu.
Jotkin ohjelmat eivät tarvitse väitteitä.
$ cat
cat ottaa muutaman väitteen, jos se niitä saa, mutta se ei tarvitse niitä toimiakseen. GNU-versio cat:ista ottaa muun muassa tämän:
$ cat --version
Tämä tulostaa näytölle versiotiedot.
cat (GNU coreutils) 8.30 Copyright © 2018 Free Software Foundation, Inc. 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. There is NO WARRANTY, to the extent permitted by law. Kirjoittaneet Torbjorn Granlund ja Richard M. Stallman.
Jotkin ohjelmat vaativat väitteitä.
$ gcc gcc: fatal error: no input files compilation terminated. $ gcc ohjelma.c -o ohjelma [ei tulostetta]
Joillain väitteillä on tarkentajia, jotka annetaan kyseisen väitteen jälkeen. Yleensä tarkentaja erotetaan väitteestä välilyönnillä, mutta monet ohjelmat hyväksyvät ja jotkut vaativat sen kirjoittamista yhteen väitteen kanssa. GNU-tyyliset pitkät väitteet erotetaan tarkentajistaan "="-merkillä. Jos tarkentajia on useampia, ne usein erotetaan toisistaan pilkulla, ilman välilyöntiä.
Väite, jolla voi olla tarkentaja, pitää laittaa väiteryhmän viimeiseksi:
komento -vglo tulostiedosto -d erotin tiedosto ...
Jos haluat käyttää tiedostoa, joka alkaa "-"-merkillä ("-ihmetiedosto") tai jos viimeisellä väittellä on tarkentaja, jota nyt ei käytetä, väitteiden ja niiden tarkentajien lopun voi ohjelmasta riippuen usein merkitä yhdellä tai kahdella "-"-merkillä. "-"-merkkiä käytetään myös ilmaisemaan standardivirtoja.
Kuinka selvittää ohjelman väitteet?
Voit tarkistaa väitteet hakemalla netistä, katsomalla man-ohjelmalla ja usein väitteillä -h tai --help.
Yleisiä väitteitä
Muistutus: kaikki ohjelmat eivät käytä samoja väitteitä samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi väitteitä.
-f "force", "tiedän mitä teen, älä huoli" -h "help", lyhyt ohje komennon käytöstä -v "verbose", enemmän tietoa ohjelman edistymisestä tai tekemisistä suorituksen aikana (joissakin ohjelmissa -v:n määrittely useampaan kertaan (esimerkiksi -vvv) tuottaa vielä tarkempaa tietoa) -V "version", ohjelman versio -o "output", luotava tiedosto (GNU-ohjelmissa, sama onnistuu usein komentotulkin rakenteella > tiedosto)
Erilaisia väitetyylejä
GNU-ohjelmistot käyttävät yleensä rinnan ensinmainittuja yhden kirjaimen väitteitä ja omia kahdella viivalla alkavia pitkiä väitteitään:
-h --help -v --verbose -V --version -o tiedosto --output=tiedosto
BSD-perinteessä (?) väitteiden edessä ei käytetä viivoja eikä niitä voi jakaa ryhmiin:
ps aux tar xzf kohdetiedosto.tar tiedosto1 tiedosto2 ...
X-ohjelmissa käytetään väitteinä lyhenteitä tai kokonaisia sanoja. GNU-standardista poiketen kokonaisina sanoina määriteltäviä väitteitä ei edellä kuin yksi viiva (-).
-help -version -geometry 100x100 -bg taustaväri
Monet ohjelmat käyttävät useamman perinteen mukaisia väitteitä, 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
C
C-kielellä väitteet 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).
#include <stdio.h>
int main(int argc, char *argv[]) {
//argv sisältää väitteet, argc kertoo argv:n pituuden
//argv:n ensimmäinen solu sisältää ohjelman nimen
printf("Väitteittesi määrä on %i\n", argc);
for(int i=0; i<argc; ++i)
printf("Väite no. %i on: %s\n", i, argv[i]);
}
Jos käännät tuon ohjelman tiedostoon "väiteotto", nämä tulostukset syntyvät:
$ ./väiteotto Väitteittesi määrä on 1 Väite no. 0 on: ./väiteotto $ ./väiteotto jgaoirjg igaoierj Väitteittesi määrä on 3 Väite no. 0 on: ./väiteotto Väite no. 1 on: jgaoirjg Väite no. 2 on: igaoierj