Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: Mistofelees - 18.11.21 - klo:15.12

Otsikko: C-kielen kielletyt komentoriviargumentit
Kirjoitti: Mistofelees - 18.11.21 - klo:15.12

En löydä mistään tietoa C:n kielletyista komentoriviargumenteista.
'$' argumentin ensimmäisenä merkkinä ei toimi.
Jos '$' on keskellä sanaa, se ja loppusana katoavat

Onko joku temppu, jolla C:n saisi hyväksymään dollarimerkin komentorivillä ?
'$GPRMC ' on selkeämpi parametri, kuin 'GPRMC'

Otsikko: Vs: C-kielen kielletyt komentoriviargumentit
Kirjoitti: kamara - 18.11.21 - klo:17.38
Se johtuu bash:sta, joka tulkitsee $:lla alkavat merkit ympäristömuuttujaksi.

Sen saa kierrettyä:
Koodia: [Valitse]
#include <stdio.h>
#include <string.h>

int main (int argc,char **args)
{
  if (argc>1) printf("%s\n",args[1]);
}

Koodia: [Valitse]
g++ argtest.c -o argtest

Sitten päätteessä:
Koodia: [Valitse]
./argtest 'koe$koe'

tai

Koodia: [Valitse]
./argtest koe\$koe

eikä siis näin...
Koodia: [Valitse]
./argtest koe$koe

Edit -
Koodia: [Valitse]
./argtest koe$HOME
Otsikko: Vs: C-kielen kielletyt komentoriviargumentit
Kirjoitti: Mistofelees - 21.11.21 - klo:12.23
Kiitos !

Bash on niin täynnä omituisia koukeroita, että olen usein toivonut, että m$ ja *n?x olisivat ottaneet komentotulkiksi  Basic:n.
TAI että olisin itse ottanut aikojen alussa csh:n käyttöön.
Nyt ei viitsisi enää vaihtaa, koska servereillä ja pöytäkoneissa on jo satoja bash:lla kirjoitettuja scriptejä.