繁体   English   中英

将命令行参数传递给cash程序调用的bash shell脚本

[英]passing command line argument to bash shell script which is called from the c++ program

我只是从我的C ++程序调用Shell脚本。 Shell脚本成功执行。 但是我无法接收通过c ++程序传递给shell脚本的命令行参数。

#include<iostream>


    int main()
    {
       system(". script.sh a b v d d");


       return 0;
    }

贝壳

echo "start | $2 | $1 | $3"

O / P:

./a.out
start |  |  |

当您要将外壳程序脚本的内容加载到当前外壳程序中时,将使用您使用的语法。 这意味着加载变量定义,函数等。

system(". script.sh a b v d d");
        ^^^^^^^^^^^

等效于运行:

system("source script.sh a b v d d");
        ^^^^^^^^^^^^^^^^

您应该使用以下语法之一调用脚本:

system("./script.sh a b v d d");
system("bash script.sh a b v d d");

因此,当您执行程序时,唯一发生的是您的脚本是源代码 没有任何参数传递给它。 这给了您运行echo "start | $2 | $1 | $3"而没有任何输入参数的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM