运行 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
在进行远程调用之前被替换。
正在寻找一种方法来完成某些要求。 我正在使用 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
在进行远程调用之前被替换。