Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Risolto] Strano errore di bash
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
baley
n00b
n00b


Joined: 05 Sep 2006
Posts: 42
Location: Udine

PostPosted: Mon Jun 14, 2010 4:24 pm    Post subject: [Risolto] Strano errore di bash Reply with quote

Ciao,

premetto che non ho usato molto spesso script di bash e quindi non lo conosco molto.
Devo eseguire uno script fatto da un'altra persona e mi restituisce errore sulla mia macchina gentoo mentre su un'altra (fedora) non da alcun errore.
Ho cercato di eliminare tutte le cose inutili in modo da riprodurre l'errore "all'ordine zero". Questo e' lo script:
Code:

#!/bin/sh
VAR="$(
cat << EOF_1
echo "1"
EOF_1
cat << EOF_2
echo "2"
EOF_2
)"

l'errore che mi restituisce e':
Code:

line 2: unexpected EOF while looking for matching `)'
line 10: syntax error: unexpected end of file

errore che non avviene se sostituisco EOF_1 con EOF oppure se eseguo lo script dall'altra macchina. L'altra macchina ha la versione 3.2.25 di bash mentre la mia ha la 4.0.37.
Questo errore puo' essere dovuto ad un bug della 4.0 o nello script si stanno facendo cose non ammesse dalla versione 4.0 di bash? Sempre che l'erorre sia dovuto alla versione...

Grazie a chiunque voglia aiutare un povero impedito!


Last edited by baley on Mon Jun 14, 2010 9:18 pm; edited 1 time in total
Back to top
View user's profile Send private message
Zizo
Apprentice
Apprentice


Joined: 04 Feb 2010
Posts: 200
Location: Padova, Italy

PostPosted: Mon Jun 14, 2010 4:55 pm    Post subject: Reply with quote

È il secondo EOF_2 a generare l'errore. Metti quattro EOF o EOF_1 e vedrai che funziona.

EDIT: O meglio, sembrerebbe l'accoppiata EOF_1/2 in successione, in quanto da soli non generano errori. Non ne conosco il motivo, e non trovo nulla a riguardo.
Back to top
View user's profile Send private message
baley
n00b
n00b


Joined: 05 Sep 2006
Posts: 42
Location: Udine

PostPosted: Mon Jun 14, 2010 5:49 pm    Post subject: Reply with quote

In questo modo non compare più quell'errore ma ne compaiono altri più avanti nello script.
Ora mi chiedo: come è possibile che lo stesso script bash dia errori in alcune macchine e in altre no?
E' un problema della mia gentoo o della versione di bash?A questo punto dovrei provare un downgrade
alla versione 3.1 o un update alla 4.1 per vedere se il problema si risolve...
Back to top
View user's profile Send private message
baley
n00b
n00b


Joined: 05 Sep 2006
Posts: 42
Location: Udine

PostPosted: Mon Jun 14, 2010 6:19 pm    Post subject: Reply with quote

Con un upgrade alla versione 4.1 di bash il tutto si risolve. Certo che dei bug nella
versione stabile di bash non è una buona cosa...cosa è meglio fare in questi casi?si
apre un bug su gentoo bugzilla?
Back to top
View user's profile Send private message
Zizo
Apprentice
Apprentice


Joined: 04 Feb 2010
Posts: 200
Location: Padova, Italy

PostPosted: Mon Jun 14, 2010 7:14 pm    Post subject: Reply with quote

Non penso sia un bug, ma un comportamento voluto. Probabilmente nella versione che avevi tu hanno tentato di dare un significato particolare a quei EOF_*, poi si sono accorti che è controproducente e hanno rimosso tale funzione.
Se fosse realmente un errore non ha nulla a che vedere con gentoo, ma bensì con bash stesso. Fai riferimento a http://tiswww.case.edu/php/chet/bash/bashtop.html#Bugs per segnalare l'eventuale bug a chi di dovere.
C'è da tener conto però che con la versione 4.1 il possibile bug non si presenta, quindi non ha senso riportarla come errore, semplicemente tieni bash-4.1.
Back to top
View user's profile Send private message
baley
n00b
n00b


Joined: 05 Sep 2006
Posts: 42
Location: Udine

PostPosted: Mon Jun 14, 2010 9:16 pm    Post subject: Reply with quote

E' ovvio che gli sviluppatori di bash si sono già accorti di questo "bug" visto che nella 4.1 non c'è (sempre che si tratti di un bug e non di un comportamento voluto come hai detto tu). La mia idea era di avvisare chi mantiene bash in portage in modo da rendere stabile una versione che non ha questo problema...ma forse è un caso talmente particolare che per gli altri utenti gentoo non è un problema.

PS: al posto di EOF_* si può mettere qualsiasi altra stringa
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum