【发布时间】:2012-01-12 10:45:32
【问题描述】:
我正在尝试了解如何正确使用sh -c 或bash -c。
我可以很容易地运行一个简单的命令,比如"sh -c ls",而不需要参数。
当我尝试添加参数时,问题就来了。
要做ls -ltga,我不得不这样做:
sh -c "ls -ltga"
这不是什么大问题,除非我正在尝试编写自己的小型 shell 程序,
当我使用execve 时,我尝试:
Argument #: string
0: sh
1: -c
2: "ls
3: -ltga"
它给了我一个错误,说它在找到下一个'"'之前到达了EOF
我也试过了:
0: sh
1: -c
2: "ls -ltga"
它返回给我说它找不到名为 "ls -ltga" 的文件/脚本
有人知道我做错了什么吗?
【问题讨论】:
-
你试过2: ls -ltga吗?
标签: bash unix arguments sh execve