Проблема обычно заключается в том, что интерпретаторы команд наэти системы имеют довольно разные представления о цитировании, чем оболочки Unix, под которыми были созданы однострочники.В некоторых системах вам, возможно, придется изменить одинарные кавычки на двойные, что вы НЕ должны делать в системах Unix или Plan9.Возможно, вам также придется заменить один %
на %%
.Например:
# Unix (including Mac OS X)
perl -e 'print "Hello world\n"'
# DOS, etc.
perl -e "print \"Hello world\n\""
# Mac Classic
print "Hello world\n"
(then Run "Myscript" or Shift-Command-R)
# MPW
perl -e 'print "Hello world\n"'
# VMS
perl -e "print ""Hello world\n"""
Проблема в том, что ни один из этих примеров не является надежным: они зависят от интерпретатора команд.Под Unix первые два часто работают.Под DOS вполне возможно, что ни один из них не работает.Если бы 4DOS была командной оболочкой, вам, вероятно, повезло бы вот так:
perl -e "print <Ctrl-x>"Hello world\n<Ctrl-x>""
Под Mac это зависит от того, какую среду вы используете.Оболочка MacPerl, или MPW, во многом похожа на оболочку Unix, поскольку она поддерживает несколько вариантов цитирования, за исключением того, что она свободно использует символы Mac, не являющиеся ASCII, в качестве управляющих символов.* и qx()
вместо «двойных кавычек», «одинарных кавычек» и backticks
могут облегчить написание однострочников.Нет общего решения для всего этого.Это беспорядок.