我在bash脚本中有这样的grep语句,比如
HDD3_block=$(grep -i $username block_access.db -s | awk -F ":" '{print $3}')
我如果使用echo $ HDD3_block我得到10 20 30所以我用了
export HDD3_block
所以我可以在Perl中使用这个变量
my $var4 = $ENV{"HDD3_block"};
我知道我得到的是10 20 30,因为我使用了print" $ var4 \ n&#34 ;;但这不是我想要的,我试图通过perl语句运行10 20 30。像
print "var result comments\n";
if ($var4 > 20){
print "$var4 this is more than 20\n";
}elsif ($var < 20){
print "$var4 this is less than 20\n";
}
但是我收到一个错误,说10 \ n20 \ n30不是数字,所以我猜测它一次获得所有这些值。有没有办法分开10 20 30所以数字通过如果语句一次一个数字,如10通过if语句,它返回得到20并通过if语句,它返回得到30并通过if语句。还是有另一种方式。
答案 0 :(得分:0)
好到目前为止我完成了这件事
in perl我做了
my $var5 = split(//,$var4);
但它不会回到第二个数字,所以我想我必须使用while循环啊......我最糟糕的噩梦,如果我有任何东西我会更新这个答案。
没有报废,当我打印它时根本不起作用我得到8.如果我找到任何东西,我会发布进一步的更新
更新1
my @list = split / /,$var4;
print "@list";
仍然不完美,因为在if语句
中没有任何反应更新2
my $var4 = "10 20 30"; #I have pre defined the value for time sake other wise this value will come from bash script.
for my $var (split / /, $var4)
{
if ($var > 20)
{
print "over 20\n";
}
elsif ($var < 20)
{
print "less than 20\n";
}
}
完成!