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

Run OS commands Conditionally(shell/plink)

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

要求

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

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

你能告诉我怎么做吗?

假设 $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 也可以;我从来没有尝试过。我还转换为使用单引号而不是双引号,因为双引号会导致 $CHECKVALUE 在进行远程调用之前被替换。