Se johtuu bash:sta, joka tulkitsee $:lla alkavat merkit ympäristömuuttujaksi.
Sen saa kierrettyä:
#include <stdio.h>
#include <string.h>
int main (int argc,char **args)
{
if (argc>1) printf("%s\n",args[1]);
}
g++ argtest.c -o argtest
Sitten päätteessä:
./argtest 'koe$koe'
tai
./argtest koe\$koe
eikä siis näin...
./argtest koe$koe
Edit -
./argtest koe$HOME