shebang, strano comportamento... [lunghetto, ed abbastanza inutile]

max max@studiomasson.it
Mer 7 Gen 2009 12:16:46 CET


Mi sa che mi aggiudico il primo post del 2009 con una cosa abbastanza 
inutile... pazienza...

Allora, premesso che parlo di un non-problema (nel senso che ho 
"risolto", ma non ho capito il motivo) vi descrivo la mia curiosità:

Script python abbastanza banale, utilizzato per far partire un 
applicativo più complesso. Lo script inizia con una banale "shebang":

#!/usr/bin/env python

Lanciandolo con il comando (al lettore per esercizio indovinare il nome 
del file incriminato):
$ python main.py
funziona perfettamente, ma la variante:
./main.py
non va, restituendo un errore (non ricordo quale con esattezza, e non 
riesco a riprodurlo, ma era una cosa tipo ':command not found').
Ovviamente lo script aveva il bit di execute, varie ed eventuali.

Grazie alle festività con un'oretta o due a disposizione decido di 
cercare di capire il motivo dell'errore, leggiucchio un po' di manuali e 
goooooooooglo un pochetto, ma non riesco a trovare la causa.

Dopo un po' di arrovellamento, concludo che... non trovo errori.
Provo allora a fare un altro script, per verificare di non avere 
problemi di environment, o magagne similari.
Inizio con uno script banale, tipo:

#!/usr/bin/env python
print 'ciao, mondo'

chmod +x, e funzia da subito.

Pian piano cerco di "debuggare" il banale script iniziale per vedere che 
non avessi fatto altri errori, non trovandone.
Decido quindi di fare un NUOVO file, nel quale copio&incollo il testo 
dello script incriminato.

Già indovinato? Si, questa cosa ha "brillantemente risolto" il problema!
Questa non è ovviamente una soluzione, non sono nemmeno riuscito a 
capire quale fosse davvero il problema. Al momento ho "impulsivamente" 
cancellato il primo file e rinominato il secondo (avevo per la testa 
altre cose da fare), così non ho più il "malefico" file originario, ma 
questa cosa mi ha lasciato un po' perplesso... non ne ho capito il senso.

Il file originale era stato aperto sia con vi, che con idle, che con 
gedit, senza vedere caratteri spuri o skifezze di alcun genere.
Non so cosa potesse averlo fatto arrabbiare ma ora, a posteriori, mi è 
venuta una certa curiosità, e voglia di condividere con voi l'accaduto.

Mai successaVI una cosa simile? :)
Qualche idea su quale potrebbe essere stato il problema?

Ah, avevo premesso già nel subject... "lunghetto e inutile"... ho 
mantenuto la promessa!

Cieli bui e sereni a tutti,
max.


Maggiori informazioni sulla lista blug