unix shell脚本中的perl timegm()错误
我试图在unix脚本中运行perl脚本。但是在执行它时,我得到了一个错误。没有timegm()perl函数,它可以正常工作。这是代码和错误消息 #!/bin/kshunix shell脚本中的perl timegm()错误,perl,Perl,我试图在unix脚本中运行perl脚本。但是在执行它时,我得到了一个错误。没有timegm()perl函数,它可以正常工作。这是代码和错误消息 #!/bin/ksh echo“我在KSH” i=10 echo“以ksh表示的i值为$i” perl使用-e标志来执行perl。然后使用argument方法将shell变量传递给perl脚本。然后使用$ARGV[0] echo "I M IN KSH" i=10 echo "value of i in ksh is $i" perl -e ' pri
echo“我在KSH”
i=10
echo“以ksh表示的i值为$i”
perl使用-e
标志来执行perl。然后使用argument方法将shell变量传递给perl脚本。然后使用$ARGV[0]
echo "I M IN KSH"
i=10
echo "value of i in ksh is $i"
perl -e '
print "I M IN PERL\n";
use Time::Local;
my $i = $ARGV[0];
print "Value of i in perl $i\n";
$time_epoo = timegm(13,06,22,29,2,2016-1900);
print "$time_epoo"
' $i
echo "BACK IN KSH"
使用perl的-e
标志来执行。然后使用argument方法将shell变量传递给perl脚本。然后使用$ARGV[0]
echo "I M IN KSH"
i=10
echo "value of i in ksh is $i"
perl -e '
print "I M IN PERL\n";
use Time::Local;
my $i = $ARGV[0];
print "Value of i in perl $i\n";
$time_epoo = timegm(13,06,22,29,2,2016-1900);
print "$time_epoo"
' $i
echo "BACK IN KSH"
我真的不知道ksh插值规则,但我猜“my\$I=$I”中的第一个$会被转义以防止ksh插值。如果是这样,为什么“$time_epo=…”中的$in不也转义了呢?我认为mkHun的回答将消除变量插值中的任何潜在歧义,并解决您的问题。我并不真正了解ksh插值规则,但我猜“my\$I=$I”中的第一个$会被转义,以防止ksh对其进行插值。如果是这样,为什么“$time_epo=…”中的$in不也转义了呢?我认为mkHun的回答将消除变量插值中的任何潜在歧义,并解决您的问题。