LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7968|回复: 19

shell脚本是否可编译成二进制文件????<讨论>

[复制链接]
发表于 2003-4-29 11:28:09 | 显示全部楼层 |阅读模式
我想把几个shell脚本编译成二进制文件
谢谢指教
发表于 2003-4-29 11:58:50 | 显示全部楼层
我还没发现linux有这样的命令,脚本文件的好处,是简单易用,便于随时调整修改,就算能有这样的命令,如果你再修改起来也是不方便的,你可以把脚本用函数的形式:function { command;}加在/etc/profile中,用起来跟可执行文件一样方便呀..其实很多linux命令都是用函数命令.
 楼主| 发表于 2003-4-29 12:23:06 | 显示全部楼层

不行啊?55555

我只是想把已调试好的shell脚本编译一下,让用的人看不出到底执行了什么东东
不行的话是不是只能用C写了???
我对C不熟悉啊
发表于 2003-4-29 19:03:38 | 显示全部楼层
呵~~我在网上问了问,人家都说我有病
不过通过改变文件组权限的方法,不知道行不?
发表于 2003-4-29 21:00:09 | 显示全部楼层
我试过,好象还真不行,呵呵。
脚本文件比较特殊,不象二进制文件,设置一个x权限就可以了,因为执行脚本实际是先读出文件,再交由解释器翻译成指令,如果只给出x权限,是无法执行脚本的。
发表于 2003-4-29 21:05:56 | 显示全部楼层
如果用perl的话,倒是可以做成可执行文件的。你不妨在perl里用脚本,再编译?http://www.ccw.com.cn/htm/app/aprog/01_3_27_4.asp
发表于 2003-4-29 21:45:04 | 显示全部楼层
这样作是不是麻烦了些呢? 我正在看perl的书,觉得比shell难多啦~...可不可以把脚本写成函数,放在配置文件中(/etc/profile),然后将再修改配置文件的权限,即,只有root有权力读写,用chattr命令可以吧~...这样以来,普通用户就可以运行那个"命令",而无法查看命令的内容呢?!我试试去~
...
结果--不行!!!
 楼主| 发表于 2003-4-30 12:38:35 | 显示全部楼层

谢谢几位版主的指点

perl我知道是可以编译的,好几年前就看人用过的
本来我还以为脚本也应该可以很简单的编译的,原来这么麻烦啊,呵呵
那我再请教一下,比如我shell里写了这么一句:
/sbin/ipchains -A input -p tcp -s 0.0.0.0/0 1024: -d 198.168.80.11/32 www -i eth0 -j ACCEPT
这是ipchains防火墙里的一句,用C该怎么实现????
发表于 2003-4-30 15:55:19 | 显示全部楼层

exec functions

man 3 exec
发表于 2003-5-7 09:16:18 | 显示全部楼层

回复: 不行啊?55555

最初由 任我行 发表
我只是想把已调试好的shell脚本编译一下,让用的人看不出到底执行了什么东东
不行的话是不是只能用C写了???
我对C不熟悉啊

个人感觉可以用. shellnane.sh这样的执行,这样就不用设置成有x的权限了!注意.和shellname.sh之间是有空格的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表