如何在其他shell中执行命令?

问题描述 投票:1回答:2

我有一个bash脚本,它打开一个名为salome shell的shell,它应该在该shell中执行一个名为as_run的命令。事实是,进入salome shell之后,直到我退出salome shell,它才执行命令。这是我得到的代码:

#!/bin/bash

cd /opt/salome/appli_V2018.0.1_public
./salome shell
eval "as_run /home/students/gbroilo/Desktop/Script/Template_1_2/exportSalome" 

为了在salome shell中执行命令,我应该怎么做?

bash shell echo
2个回答
1
投票

可能就是您想要的:

# call salome shell with commands in a specified script file
cd /opt/salome/appli_V2018.0.1_public
./salome shell <"/home/students/gbroilo/Desktop/Script/Template_1_2/exportSalome"

或者可能是您想要的:

# pipe a command as_run... to salome shell
cd /opt/salome/appli_V2018.0.1_public
echo "as_run /home/students/gbroilo/Desktop/Script/Template_1_2/exportSalome" | ./salome shell

无论如何,您必须阅读salome指南,了解salome shell如何调用它的脚本。


1
投票

大多数shell实现了一种将命令作为参数传递的方法,例如

dash -c 'x=1 ; echo $x'

您需要查阅您的Shell手册,以查看是否可行。

您也可以尝试将命令发送到外壳的标准输入:

echo 'set x = 1 ; echo $x' | tcsh

在使用复杂命令的情况下,使用HERE文档可能会更具可读性:

tcsh << 'TCSH'
    set x = 1
    echo $x
TCSH
© www.soinside.com 2019 - 2024. All rights reserved.