如何从shell脚本创建二进制文件
发布时间 - 2019-03-21 00:00:00 点击率:次在使用linux系统时,我们都会使用许多命令。大多数命令以二进制格式在/bin、/sbin、/usr/bin、/usr/sbin等目录中可用。作为系统管理员,我们编写了许多shell脚本来完成一些任务或使它们自动化。
本文将介绍创建shell脚本的二进制文件,因为没有人可以看到脚本的源代码,我们可以将它们用作命令。要从脚本创建二进制文件,我们使用SHC编译器。
请按照以下步骤执行此操作。
步骤1:先决条件
首先,需要为SHC编译器安装所需的包。
对于Ubuntu,Debian和LinuxMint
$ sudo apt-get install libc6-dev
对于CentOS,RHEL和Fedora
$ sudo yum install glibc-devel
步骤2:下载并安装SHC
从SHC编译器的官方网页或使用以下命令下载最新的源代码,并在您的系统上提取。
$ cd / usr / src $ wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz $ sudo tar xzf shc-3.8.9.tgz
现在编译系统上的SHC源代码并使用以下命令安装它。
$ cd shc-3.8.9 $ make $ make install
步骤3:创建shell脚本
让我们根据需求创建一个shell脚本,或者跳过这个步骤(如果已经创建了)。对于本文,我们已经创建了下面的示例脚本,它添加了命令行参数上给定的整数值,并显示了它们的总和。
vim script.sh
#!/bin/bash
total=0
for i in $@; do
if [ ! -z "${i##[0-9]*}" ]; then
echo "Please enter numeric only"
exit 1
fi
total=$(($total + $i))
do
ne
if [ $total -eq 0 ]; then
echo "Plesae execute script like: $0 10 20 30"
exit 0
fi
echo $total步骤4:创建脚本的二进制文件
在这个阶段,我们已经安装了SHC编译器,并有一个名为script.sh的shell脚本。使用下面的命令创建脚本的二进制文件。
$ shc -T -f script.sh
上面的命令将在当前目录中创建两个文件。其中一个是script.sh.x.c,它是脚本中的C语言格式。第二个是script.sh.x,它将采用二进制格式。
步骤5:测试二进制脚本
如果试图打开二进制格式的脚本,将看到它不是可读的格式。
现在将该脚本移到/usr/bin目录下,以便在系统中的任何位置使用。同时从文件名中删除.sh.x。因此,它将以简单的名称实现。同时为所有人设置执行权限
$ mv script.sh.x / usr / bin / script $ chmod + x / usr / bin / script
现在从系统中的任何位置输入命令'script'。将看到与shell脚本相同的结果。
$ script 10 20 30 60
本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的Linux教程视频栏目!
# php
# c语言
# 命令行参数
# linux
# ubuntu
# centos
# debian
# 自动化
# 源代码
# 您的
# 在这个
# 让我们
# 将在
# 目录中
# 并在
# 它是
# 所需
# 我们可以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
jQuery 常见小例汇总
Python并发异常传播_错误处理解析【教程】
Swift中switch语句区间和元组模式匹配
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
LinuxShell函数封装方法_脚本复用设计思路【教程】
如何在阿里云香港服务器快速搭建网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
如何用腾讯建站主机快速创建免费网站?
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Laravel如何实现用户注册和登录?(Auth脚手架指南)
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel如何实现多对多模型关联?(Eloquent教程)
,在苏州找工作,上哪个网站比较好?
百度浏览器如何管理插件 百度浏览器插件管理方法
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
详解vue.js组件化开发实践
装修招标网站设计制作流程,装修招标流程?
Linux系统命令中screen命令详解
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
高性能网站服务器部署指南:稳定运行与安全配置优化方案
Laravel如何使用Telescope进行调试?(安装和使用教程)
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
千库网官网入口推荐 千库网设计创意平台入口
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
bing浏览器学术搜索入口_bing学术文献检索地址
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Swift中循环语句中的转移语句 break 和 continue
如何生成腾讯云建站专用兑换码?
5种Android数据存储方式汇总
如何快速生成可下载的建站源码工具?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Android实现代码画虚线边框背景效果
如何批量查询域名的建站时间记录?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
高性价比服务器租赁——企业级配置与24小时运维服务
常州企业网站制作公司,全国继续教育网怎么登录?
Android GridView 滑动条设置一直显示状态(推荐)
网页设计与网站制作内容,怎样注册网站?
简历没回改:利用AI润色让你的文字更专业


ne
if [ $total -eq 0 ]; then
echo "Plesae execute script like: $0 10 20 30"
exit 0
fi
echo $total