Comment créer un fichier binaire à partir d'un script shell

不言
Libérer: 2019-03-21 15:43:59
original
7832 Les gens l'ont consulté

在使用Linux系统时,我们都会使用许多命令。大多数命令以二进制格式在/bin、/sbin、/usr/bin、/usr/sbin等目录中可用。作为系统管理员,我们编写了许多shell脚本来完成一些任务或使它们自动化。

Comment créer un fichier binaire à partir d'un script shell

本文将介绍创建shell脚本的二进制文件,因为没有人可以看到脚本的源代码,我们可以将它们用作命令。要从脚本创建二进制文件,我们使用SHC编译器。

请按照以下步骤执行此操作。

步骤1:先决条件

首先,需要为SHC编译器安装所需的包。

对于Ubuntu,Debian和LinuxMint

$ sudo apt-get install libc6-dev
Copier après la connexion

对于CentOS,RHEL和Fedora

$ sudo yum install glibc-devel
Copier après la connexion

步骤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
Copier après la connexion

现在编译系统上的SHC源代码并使用以下命令安装它。

$ cd shc-3.8.9
$ make
$ make install
Copier après la connexion

步骤3:创建shell脚本

让我们根据需求创建一个shell脚本,或者跳过这个步骤(如果已经创建了)。对于本文,我们已经创建了下面的示例脚本,它添加了命令行参数上给定的整数值,并显示了它们的总和。

vim script.sh
Copier après la connexion
#!/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))
done

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

echo $total
Copier après la connexion

步骤4:创建脚本的二进制文件

在这个阶段,我们已经安装了SHC编译器,并有一个名为script.sh的shell脚本。使用下面的命令创建脚本的二进制文件。

$ shc -T -f script.sh
Copier après la connexion

上面的命令将在当前目录中创建两个文件。其中一个是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
Copier après la connexion

现在从系统中的任何位置输入命令'script'。将看到与shell脚本相同的结果。

$ script 10 20 30 
60
Copier après la connexion

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的Linux教程视频栏目!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal