用双引号参数执行c程序

时间:2018-04-24 23:26:55

标签: bash ansi

我正在使用ubuntu并使用" / bin / bash"作为我的默认bash。 我有一个简单的c程序(test_arg.c)来打印参数。

#include <stdio.h>

void
main(int argc, char **argv)
{
    for(int i=0; i < argc; i++) {
        printf("arg[%d]:%s \n", i, argv[i]);
    }
}

当我尝试传递具有双引号的参数时,它可以正常工作。

ubuntu@ubuntu:~$ ./test_arg.out 1 2 3 "4 5 6"
arg[0]:./test_arg.out
arg[1]:1
arg[2]:2
arg[3]:3
arg[4]:4 5 6

如果我使用bash变量来存储参数,那么它就不会按预期工作。

ubuntu@ubuntu:~$ arg="1 2 3 \"4 5 6\""
ubuntu@ubuntu:~$ ./a.out $arg
arg[0]:./a.out
arg[1]:1
arg[2]:2
arg[3]:3
arg[4]:"4
arg[5]:5
arg[6]:6"

我必须使用变量来存储参数。我尝试了不同的选择但失败了。感谢任何建议。

0 个答案:

没有答案