如您所知,shell脚本在脚本顶部有一个“#!/ bin / bash”,它将脚本结束为shell二进制文件,然后shell将运行该脚本。我想创建一个应该被称为“#!/ bin / foo”的程序,然后它应该读取脚本。但我不知道我该怎么办呢。能帮忙吗?
答案 0 :(得分:4)
运行#!/bin/foo
shebang时,运行/bin/foo
,文件名作为参数,例如如果文件名是bar
,那么将运行的命令行是/bin/foo bar
。要在C中实现它,请检查main()
的{{1}}(参数计数)是否为argc
,然后1
的唯一元素将是文件名,以便您可以使用{ {1}}访问文件名。从那里我想你会想argv
文件argv[0]
,并用它做你想做的事。
答案 1 :(得分:1)
#!/bin/echo
开头的空脚本(并执行它)以查看shell将传递给程序的参数int main(int argc, char *argv[])
答案 2 :(得分:0)
你可以使用你喜欢的任何东西。例如,如果我创建一个名为test
的文本文件:
#!/bin/cat
content
我使用chmod
:
chmod +x test
现在,我可以执行它,结果是调用cat打印文件内容:
$ ./test
#!/bin/cat
content
$