如何从shell脚本在不同的CLI上执行命令?

如何从shell脚本在不同的CLI上执行命令?,shell,unix,Shell,Unix,我必须连接到不同的cli,执行一些命令并退出sudo$SIGNMCLI连接到cli。下面的脚本不起作用。我想在SIGNMCLI中执行退出 #!/bin/bash -xv SIGNMCLI=/opt/sign/EABss7024/bin/signmcli if [ -f "$FileCheck" ]; then sudo $SIGNMCLI exit; fi 如果我执行以下操作,它将起作用: #!/bin/bash -xv SIGNMCLI=/opt/sig

我必须连接到不同的cli,执行一些命令并退出
sudo$SIGNMCLI
连接到cli。下面的脚本不起作用。我想在
SIGNMCLI
中执行退出

#!/bin/bash -xv

SIGNMCLI=/opt/sign/EABss7024/bin/signmcli

if [ -f "$FileCheck" ];
then
        sudo $SIGNMCLI
        exit;
fi
如果我执行以下操作,它将起作用:

#!/bin/bash -xv

SIGNMCLI=/opt/sign/EABss7024/bin/signmcli

if [ -f "$FileCheck" ];
then
        echo 'exit' |sudo  $SIGNMCLI
fi

但是,我想在
SIGNMCLI
中执行多个命令。是否仍要将控件重定向到SIGNMCLI,并在执行所有命令后返回控件?

您可以在脚本中使用分号运算符执行多个命令

cmd1 ; cmd2 ; cmd3 ...
在你的情况下,我建议你使用;或&

    echo 'exit'; sudo  $SIGNMCLI
这是命令的基本用法

* A; B    Run A and then B, regardless of success of A
* A && B  Run B if A succeeded
* A || B  Run B if A failed
* A &     Run A in background.

SIGNMCLI=/opt/sign/eabs7024/bin/signmcliHi,谢谢你的回复,我试过了。echo'ls;ifconfig;谁退出“| sudo$SIGNMCLI”除此之外,还有其他任何命令。如果我们正在处理任何ORACLE请求,通常不使用“echo”命令shell脚本意味着我们正在使用>>EOF。。。。。。。EOF和shellHi中的任何命令一样,我还有一个疑问,使用shells脚本,我需要不断检查目录中的特定文件,如果特定文件存在,我需要执行一些操作。如果文件存在,我需要重新启动堆栈“ss7 stack restart”,您甚至没有投票支持提供的解决方案。现在你要问另一个shell问题,请在sf中提出另一个问题。以前的解决方案很好。如果[-f“$FileCheck”];然后echo“$FileCheck发现正在输入signmcli命令。”echo“$signmcli\u重新启动;退出“| sudo$SIGNMCLI else echo”$FileCheck not found.”&2如果它工作正常,则表示您可以向上投票,这是您所能做到的最低礼貌。你可以在小三角形上点击鼠标按钮