Problem mit quoting



  • Ich schreibe an einem configure.ac. Einem Programm (idl4) muss man den compileraufruf übergeben. Mein Versuch sieht so aus (CFLAGS, CC und IDL4 sind auf jeden fall gültig)

    IDL4FLAGS="$IDL4FLAGS -i V4_GNU -p generic -T -C \"$CC $CFLAGS\""
    echo -n "checking for idl4 -l -i V4_GNU... "
    $IDL4 $IDL4FLAGS -l -c test.idl
    if test -e test_client.h;then
    echo yes
    rm test_client.h
    else
    echo 'Your version of idl4 is outdated, see README.idl4!'
    exit 1
    fi
    

    Aber irgendwie funktioniert das nicht. Scheinbar bekommt idl4 den compileraufruf nicht gequotet und regt sich daher über falsche Optionen auf.
    /edit: das ist kein autoconfig- sondern ein shellspezifisches Problem...
    /nochamledit: ich seh grade, dass ist nicht ganz klar...
    Eigentlich wünsche ich mir die expansion der Zeile so:

    idl4 -i V4_GNU -p generic -T -C "gcc -O3 -std=gnu99" -c test.idl
    

    Scheinbar kommt aber

    idl4 -i V4_GNU -p generic -T -C gcc -O3 -std=gnu99 -c test.idl
    

    raus.



  • Gibt es hier denn keine bourne shell geeks?



  • #!/bin/bash
    
    IDL4FLAGS="AAAA"
    CC="BBBB"
    CFLAGS="CCCC"
    
    DL4FLAGS="$IDL4FLAGS -i V4_GNU -p generic -T -C \"$CC $CFLAGS\""
    
    echo $DL4FLAGS
    

    und der output ist:

    AAAA -i V4_GNU -p generic -T -C "BBBB CCCC"

    scheint also alles richtig gequoted. Der Fehler mus also wo anders stecken!

    gruss 🙂


Anmelden zum Antworten