Значение псевдонима должно быть заключено в кавычки, поскольку оно содержит специальные символы. Попробуйте это:
alias p4client "echo "\`"p4 info | perl -ne 's/Client name: (.*)'\"\$"'/print '\"\$"'1/e'"\`
И, черт возьми, csh - худшая оболочка в мире. Правила цитирования ужасны . Я растопил свой мозг, пытаясь придумать это, и теперь у меня не осталось сил объяснить это. Извините, пока у меня аневризма.
Редактировать 1: Вот, ваши драгоценные знаки доллара $
превратились в это чудовище! '\"\$"'
Редактировать 2: ОК, я начинаю восстанавливаться. Моя сила возвращается с каждым мгновением, которое я провожу в сладких объятиях моей любимой женщины. Беги, цш, ты, скверный зверь!
Причина, по которой это так ужасно, заключается в том, что все это должно быть удвоено. Один раз, чтобы знаки доллара передавались в Perl, и другой раз, чтобы они благополучно миновали оператор псевдонима. Если это помогает, цель состоит в том, чтобы псевдоним был похож на это:
% alias
4client echo `p4 info | perl -ne 's/Client name: (.*)'\$'/print '\$'1/e'`
Причина последовательности '\$'
заключается в том, что csh не может избежать знаков доллара внутри двойных кавычек. Вы не можете просто поставить обратную косую черту. Вы фактически должны временно закрыть кавычки, использовать \$
вне кавычек , а затем заново открыть кавычки.