vorrei spiegare il motivo per cui il codice non lo fa lavoro.
Cosa si voleva fare è che:
arg="A B C"
python -c "print '""$arg""'"
uscita:
A B C
Il problema del codice è che python -c "print '"$arg"'"
viene analizzato come python -c "print '"A B C"'"
dalla shell. Vedere questo:
arg="A B C"
python -c "print '"A B C"'"
#__________________^^^^^____
uscita:
File "<string>", line 1
print 'A
SyntaxError: EOL while scanning string literal
Qui si ottiene un errore di sintassi perché gli spazi impediscono di concatenazione, quindi il seguente B
e C"'"
sono interpretati come due stringhe differenti che non fanno parte della stringa passato come un comando all'interprete python (che accetta solo la stringa che segue il comando -c
).
Per una migliore comprensione:
arg="ABC"
python -c "print '"$arg"'"
uscita:
ABC
fonte
2015-04-20 14:33:58
'python -c "print \" $ arg "'funziona per me \". –
o anche 'python -c" stampa '$ arg' "' –
L'evidenziazione della sintassi mostra il problema :-) –