【发布时间】:2018-10-21 07:21:54
【问题描述】:
我有一个 shell 脚本 compileRun 编译和执行 C 源文件。
#!/bin/sh
gcc bar.c -o ./bar
./bar
我真正希望实现的是当我们
ln -s compileRun bar.c
./bar.c
我希望 bar.c 被编译和执行。 感谢您的帮助。
【问题讨论】:
-
您希望创建符号链接 隐式运行编译过程吗?是什么让您相信这是可能的?
-
坦率地说,任何允许它的操作系统都会从安全角度做出有问题的决定,因为有人链接到文件通常不会期望他们这样做重新隐式运行任意代码。原则上,执行任意代码作为副作用是危险的。
-
...也就是说,如果您希望
bar.c本身是可执行的,那么 是 实际上是可能的,只是不使用 gcc。请参阅wiki.archlinux.org/index.php/Tcc,启用#!/usr/bin/tcc -runshebang。