有条件地运行OS命令(shell / plink)

时间:2016-02-11 03:01:59

标签: shell plink

寻找完成某些要求的方法。 我使用plink在远程服务器中发出2个命令,需要获取信息。

要求

如果$ CHECKVALUE返回任何值,我只需要发出'uname'命令。 如果$ CHECKVALUE没有返回任何值,我需要发出'ls'& 'uname'命令。

plink -ssh -l user01 -pw user01 192.168.0.5 " . .bash_profile 2> Nil; echo $CHECKVALUE; ls; uname; "

你能告诉我怎么做吗?

1 个答案:

答案 0 :(得分:1)

假设$CHECKVALUE来自远程系统上的环境,而不是来自发出plink命令的系统,您只需要这样做:

plink -ssh -l user01 -pw user01 192.168.0.5 ' . .bash_profile 2> /dev/null; if [ -n "$CHECKVALUE" ] echo "$CHECKVALUE"; else ls; fi; uname; '

请注意,我将Nil更改为/dev/null,因为这似乎是类UNIX系统。如果这是Cygwin,也许Nil也可以;我从来没有尝试过。我还转换为使用单引号而不是double,因为双引号会导致$CHECKVALUE在远程调用之前被替换。