Newsgroup: it.comp.os.linux.sys
Titolo: Bash bacata? Comportamento assurdo!

Sunque .. scusate se non ci capisco molto ... ho sempre lavorato con
Windows 98 e ora mi sto cimentando in Linux da un mesetto, ma sono
ancora alle prime armi. Mi sembra che che io mi ritrovi con una bash
bacata!
Ho installato la SuSE 6.2 in versione completa.
Ha il Kernel 2.2.10
Siccome non supportava la mia scheda sonora che era supportata dalla
versione 2.2.14 ho installato i sorgenti del nuovo kernel e lo ho
ricompilato.
Tuttavia ho perso la PCMCIA perche' i vecchi driver non sono
compatibili.
Ho scaricato la nuova versione dei moduli per PCMCIA(pcmcia-cs-3.1.13).
Ma ho dei grossi problemi.
Sull'HOWTO dice di fare:
make config
make all
make install
Ma cosi' appena fatto:
make config
mi dice
Makefile:5: Extraneus text after 'ifeq' directive.
Makefile:7: Extraneus text after 'endif' directive.
Makefile:13: Extraneus text after 'endif' directive.
', needed by 'config'. Stop.get '.
Invece un mio amico mi ha detto che devo fare prima :
./Configure
e poi la sequenza. Lui ha provato sul suo computer e funziona bene tutto
Ma se lo faccio io dopo aver lanciato
./Configure
mi dice:
bash: ./Configure: No such file or directory
Pazzesco! Mi completa il comando con il TAB e quindi c'e' "Configure"
nella
directory (oltre al fatto che lo vedo li'! ;-)
"Configure" parte con la riga:
#!/bin/bash
E il mio amico mi ha detto che #! dice che deve leggere la riga.
Quindi mi ha detto i provare a toglierla.
La ho tolta e ottengo:
: command not found
'/Configure: line 31: syntax error near unexpectd token '()
'/Configure: line 31: 'fail ()
Come ultima prova ho provato a togliere le righe relative al fail ma poi
mi
da' un'errore su un'altra sottofunzione definita nello script.
Insomma comincio a pensare come ho detto nel topic che la bash sia
bacata.
Sembra un problema di shell che non mi fa definire ed eseguire delle
sottofunzioni (non so se si chiamano cosi' correttamente).
E' colpa del kernel nuovo che ho installato? Boh ....
grazie a tutti
Biro

Anche io ci ho perso un po' di tempo perche' effettivamente il
messaggio della bash e' fuorviante. In realta' la bash associa
quel messaggio a un signal che ritorna da un processo generato
e che evidentemente e' usato anche per altri scopi.
Il problema e' sicuramente in un eseguibile ELF chiamato dallo
script che ha problemi a linkare le libc. Non so come si risolve,
non sono molto esperto di installazioni e upgrade di libc, ma
sono certo che e' cosi. Una volta ho compilato un mio sorgente
C su slackware, il classico Hello World! e il binario ottenuto,
copiato su RedHat 5.2 dava lo stesso messaggio: file non found.
Il comando ldd (che dice quali librerie dinamiche usa un eseguibile
ELF) dava anche lui file not found se gli passavo come argomento
tale eseguibile e invece dava le info se aveva un binario compila-
to su RedHat.
Forse hai manomesso le libc o forse hai un eseguibile preso da un
altro sistema.
Rimetti la prima linea dello script a posto per far eseguire lo
script dalla giusta shell (gli errori che ti dava erano di sintassi),
poi esamina tutti gli eseguibili che chiama lo script con:
ldd nomebinariochechiama
compreso il binario che interpreta lo script cioe' quello in #!
Se il problema e' questo la soluzione ... Bohh
Ciao.

bash: ./Configure: No such file or directory
hai controllato che il file Configure sia eseguibile?...Cioe' che
abbia il flag x?
Se cosi' non fosse da root fai chmod +x nomefile e riprovi
Bye GF
e-mail 
gi....@mindless.com
icq 7971778