如您所知,shell 脚本在脚本顶部有一个“#!/bin/bash”,它将脚本结束为 shell 二进制文件,然后 shell 将运行它。我想制作一个应该像“#!/bin/foo”这样调用的程序,然后它应该读取 script 。但我不知道我该怎么做。某人可以帮忙吗?
问问题
121 次
3 回答
4
当#!/bin/foo
shebang 运行时/bin/foo
,以文件名作为参数运行,例如,如果文件名是bar
,那么将运行的命令行是/bin/foo bar
. 要在 C 中实现它,请检查main()
's argc
(参数计数)是否为1
,然后唯一的元素argv
将是文件名,因此您可以使用它argv[0]
来访问文件名。从那里我猜你会想要fopen()
文件,fread()
它,并用它做你想做的事。
于 2013-10-11T13:10:24.177 回答
1
- 编写一个以 开头的空脚本
#!/bin/echo
(并执行它)以查看 shell 将传递给您的程序的参数 - 编写一个 C 程序,在传递给时处理这些参数
int main(int argc, char *argv[])
于 2013-10-11T13:10:53.937 回答
0
你可以使用任何你喜欢的东西。例如,如果我创建一个名为的文本文件test
:
#!/bin/cat
content
我给文本文件写权限chmod
:
chmod +x test
现在,我可以执行它,结果是调用 cat 打印文件内容:
$ ./test
#!/bin/cat
content
$
于 2013-10-11T13:13:56.610 回答