你能告诉我如何将 cshell 变量传递给 perl one liner 吗?我希望脚本打印出 AAA,但它最终给了我一个错误:替换替换未在 -e 第 1 行终止。
#!/usr/bin/tcsh -fb
set myvar = "AAA"
perl -e "print $myvar"
我的脚本更复杂的情况。
#!/usr/bin/tcsh -fb
set myvar = "AAA"
perl -ne 'if (/$myvar/) {s/m1/m2/g}' fileA
来自主机系统的环境变量在 Perl 的%ENV
变量中可用。但是要将变量标记为可继承,您必须使用 csh 的setenv
内置函数而不是set
.
% setenv myvar AAA
% perl -e 'print $ENV{myvar}'
AAA
(注意参数中的单引号perl -e
)
您的 perl 语句是print 'AAA'
,因此您需要传入单引号。
set myvar = "AAA"
perl -e "print '$myvar'"
在另一种情况下,您需要使用双引号让 Perl 获取变量的值。
set myvar = "AAA"
perl -ne "if (/$myvar/) {s/m1/m2/g}" fileA
您可以将myvar
命令行参数作为命令行参数传递给您的perl
程序。