如果是perl中的else语句

时间:2013-11-02 05:07:43

标签: linux perl if-statement sed

我编写了一个产生一组单词的代码

my $uptime = `command | sed -n "xp" | cut -d" " -fx`;

以上命令给我下面的字。

not running

我想在下面的if语句中使用这个词

if ($uptime = $not){
    $run = `command`;
    $start = `start`;

我已声明变量$not并将"not running"放入其中。虽然脚本正在运行,但正在执行相反的操作,程序运行时。 Belo命令给出了一个不同的单词(如“ok”)不在变量$not中,但脚本正在重新启动程序。

#!/usr/bin/perl
use warnings;
use strict;
$not = "not running";
$uptime = `command | sed -n "xp" | cut -d" " -fx`;
if ($uptime = $not){
    # if not running the program than execute below else do nothing
    $run = `cp /home/x`;
    $start = `start`;
}

1 个答案:

答案 0 :(得分:2)

'if ($uptime = $not)' and 'if ($uptime eq $not)'

是两个不同的东西。eq是字符串比较运算符,因此当比较相等时它将返回1而当条件不满足时将返回'',而if ($uptime = $not)将返回true $not计算结果为true,因为您使用赋值运算符=将一个变量分配给另一个变量。所以请更改您的代码。

your condition will look like the following .
$uptime=chomp($uptime);
if ($uptime eq $not){
//your code
}