Di solito il problema è che l'interprete dei comandi di questi
sistemi ha idee sul quoting piuttosto differenti rispetto a quelle delle
shell Unix nelle quali gli one-liner sono stati creati. Su alcuni sistemi,
potreste dover cambiare gli apici singoli in doppi apici, cosa che NON
dovete fare in Unix o nei sistemi Plan9. Potreste inoltre dover cambiare
un singolo % in un %%.
Ad esempio:
# Unix
perl -e 'print "Ciao Mondo\n"'
# DOS, etc.
perl -e "print \"Ciao Mondo\n\""
# Mac
print "Ciao Mondo\n"
(e poi Run "Myscript" oppure Shift-Mela-R)
# VMS
perl -e "print ""Ciao Mondo\n"""
Il problema è che nessuno di questi esempi è affidabile:
dipende dall'interprete dei comandi. In ambiente Unix, i primi due esempi
spesso funzionano. In ambiente DOS è del tutto possibile che nessuno
dei due funzioni. Se la shell fosse 4DOS, probabilmente avreste miglior
fortuna con qualcosa del genere:
perl -e "print <Ctrl-x>"Ciao Mondo\n<Ctrl-x>""
Su Mac, dipende dall'ambiente che state usando. La shell MacPerl, oppure
MPW, è in larga misura analoga ad una shell Unix per quanto riguarda
il supporto di diverse varianti del quoting, eccettuato il fatto che adopera
liberamente i caratteri non-ASCII come caratteri di controllo.
L'uso di qq(), q() e qx() anziché dei "doppi apici", 'singoli apici' e
`apici inversi' potrebbe rendere gli one-liner più semplici da
scrivere.
Non c'è una soluzione generale. È una situazione confusa.
[Parte di questa risposta è un contributo di Kenneth Albanowski.]
|