簡體   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