0

I would like to know how I can manipulate C program to run command in the terminal.

For example: If I run this statement PS1="Linuxrocks $", it runs fine in the terminal. But how would I write a program to do the the same thing. Or what function do I use?

    #include <sys/types.h>
    #include <sys/wait.h>
    #include <stdio.h>
    #include <unistd.h>

    int main() {
            char *argv[3] = {"Command-line", ".", NULL};

            int pid = fork();

            if ( pid == 0 ) {
                    execvp( PS1="linuxrocks $", argv );
            }

            wait( NULL );
        printf( "Finished executing the parent process\n" );

        return 0;
    }
4

3 回答 3

1

使用 shell 脚本更改当前活动的环境。

如果您运行一个二进制程序来执行此操作,它只会修改它自己在启动时分配的环境副本。

程序结束后对后者的更改将消失,因为届时程序的环境(已应用更改)将消失。

于 2013-10-25T13:12:31.510 回答
0

您可以,我也这样做,PS1="New value: "在适当的 shell 启动文件中进行设置(例如.profileor.bash_profile或可能.bashrc)。如果你export PS1,它也可用于子外壳。我不导出它,所以我可以知道我何时在子外壳中。

你不能像你试图做的那样去做。

于 2013-10-25T13:33:12.583 回答
-2

您可能应该使用 stdlib.h 中的函数 system()。

于 2015-03-20T20:54:50.153 回答