Shell将args发送到带空格的C程序

问题描述

路由器上的

shell,只有/ bin / sh,没有bash,不能使用bash的数组 a.sh:

#!/bin/sh
ARGS="-v -b 'b.sh start' -c 'b.sh stop' " # or '-v -b "b.sh start" -c "b.sh stop" '
PROC="./a.out"  # a.out is c program
$PROC $ARGS

在a

int main(int argc,char* argv[]) {
    for (int i = 0; i < argc; ++i){
        fprintf(stderr,"%s\n",argv[i]);
    }
}

gcc a.c

sh ./a.sh

./a.out
-v
-b
'b.sh
start'
-c
'b.sh
stop'

但是在以下情况下可以:/a.out -v -b'b.sh start'-c'b.sh stop'

./a.out
-v
-b
b.sh start
-c
b.sh stop

我该怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)