前提・実現したいこと
コマンドライン引数を2 つ持ち,第1 引数で指定した環境変数の値を第2 引数で指定した値に設定して,シェルスクリプトをsystem 関数を用いて実行するプログラムを作成したいです。
発生している問題・エラーメッセージ
シェルスクリプトの実行まではできたのですが、
「コマンドライン引数を2 つ持ち,第1 引数で指定した環境変数の値を第2 引数で指定した値に設定」をどのようにすれば良いのか分かりません。
何か分かることがありましたら、コメント頂けると幸いです。
また、交換できているかの確認方法などはあるのでしょうか?
シェルスクリプトの内容だけが表示されているので、環境変数が変更されているのか分かりません。
実行結果
0 3410 ./testscript
該当のソースコード
main関数
c言語
1#include <stdio.h> 2#include <stdlib.h> 3 4extern char **environ; 5 6int main(int argc, const char *argv[], const char *envp[]) { 7 8 char *command = "./testscript"; 9 int res; 10 11 setenv(argv[1], argv[2], 1); 12 13 res = system(command); 14 15 return 0; 16}
シェルスクリプト関数
#!/usr/bin/bash echo $# echo $$ echo $0 echo $1 echo $2 echo $3
試したこと
環境変数を引数にもつコマンドライン引数について調べました。
このサイトを参考にしています、https://www.delftstack.com/ja/howto/c/setenv-in-c/
補足情報(FW/ツールのバージョンなど)
エディター vim
コンパイラ LINUX
回答3件
あなたの回答
tips
プレビュー