【问题标题】:Not able to execute Script(.sh) inside script(.sh) with rensi.sshnet library in C# web application无法在 C# Web 应用程序中使用 rensi.sshnet 库在脚本(.sh)中执行脚本(.sh)
【发布时间】:2015-03-09 08:38:54
【问题描述】:

我创建了一个 Web 应用程序,我在远程 unix 服务器中执行 shell 脚本 abc.sh。我能够执行该脚本。但是从abc.sh 我正在调用另一个脚本xyz.sh,它没有被调用。我正在使用 Rensi.sshnet 库在 Web 应用程序中执行 shell 脚本。

脚本文件的文件夹结构:/home/scripts/

注意:它们都位于同一个文件夹中。

abc.sh 看起来像这样:

echo test

echo "execute another shell script"

xyz.sh

echo "Executed"

请为我提供解决方案或一些解决方法以获得所需的结果。

提前致谢。

【问题讨论】:

    标签: c# bash shell web


    【解决方案1】:

    也许您的xyz.sh 文件不在您的PATH 中。尝试更改此行

    xyz.sh
    

    进入

    ./xyz.sh
    

    【讨论】:

    • 是的,你完全正确。它适用于您的建议。但我无权更改脚本文件。如果我从“SSH.net Secure shell”工具运行该脚本文件,它与“xyz.sh”一起工作得很好。是否有任何特定原因无法与 Web 应用程序中的“Rensi ssh.net”库一起使用。
    • 可能是因为您的 SSH.net 安全 shell 中设置了环境变量,但您在远程脚本执行中没有设置这些变量。 SSH.net 安全外壳是一个登录外壳,这意味着在您打开此外壳后,您的所有环境变量都会自动设置。您可以在脚本的“调用”中使用技巧,而不是脚本本身。在调用前添加服务器端包含文件夹的路径,如:invocation_func("PATH=$PATH:/remote_path abc.sh")。另一个建议是使用 bash shell 调用脚本,而不是 sh shell(如果可能的话)
    • 我无法将其更改为 BASH。我试图用 PATH 调用脚本,但没有得到结果。您能否详细说明如何调用脚本在服务器端添加包含文件夹的路径?
    猜你喜欢
    • 2011-10-01
    • 2022-01-09
    • 2021-06-27
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多