如何從shell腳本創(chuàng)建二進制文件

在使用linux系統(tǒng)時,我們都會使用許多命令。大多數(shù)命令以二進制格式在/bin、/sbin、/usr/bin、/usr/sbin等目錄中可用。作為系統(tǒng)管理員,我們編寫了許多shell腳本來完成一些任務或使它們自動化

如何從shell腳本創(chuàng)建二進制文件

本文將介紹創(chuàng)建shell腳本的二進制文件,因為沒有人可以看到腳本的源代碼,我們可以將它們用作命令。要從腳本創(chuàng)建二進制文件,我們使用SHC編譯器。

請按照以下步驟執(zhí)行此操作。

步驟1:先決條件

首先,需要為SHC編譯器安裝所需的包。

對于ubuntudebian和LinuxMint

$?sudo?apt-get?install?libc6-dev

對于centos,RHEL和Fedora

$?sudo?yum?install?glibc-devel

步驟2:下載并安裝SHC

從SHC編譯器的官方網(wǎng)頁或使用以下命令下載最新的源代碼,并在您的系統(tǒng)上提取。

$?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

現(xiàn)在編譯系統(tǒng)上的SHC源代碼并使用以下命令安裝它。

$?cd?shc-3.8.9 $?make $?make?install

步驟3:創(chuàng)建shell腳本

讓我們根據(jù)需求創(chuàng)建一個shell腳本,或者跳過這個步驟(如果已經(jīng)創(chuàng)建了)。對于本文,我們已經(jīng)創(chuàng)建了下面的示例腳本,它添加了命令行參數(shù)上給定的整數(shù)值,并顯示了它們的總和。

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)) done  if?[?$total?-eq?0?];?then ????echo?"Plesae?execute?script?like:?$0?10?20?30" ????exit?0 fi  echo?$total

步驟4:創(chuàng)建腳本的二進制文件

在這個階段,我們已經(jīng)安裝了SHC編譯器,并有一個名為script.sh的shell腳本。使用下面的命令創(chuàng)建腳本的二進制文件。

$?shc?-T?-f?script.sh

上面的命令將在當前目錄中創(chuàng)建兩個文件。其中一個是script.sh.x.c,它是腳本中的c語言格式。第二個是script.sh.x,它將采用二進制格式。

步驟5:測試二進制腳本

如果試圖打開二進制格式的腳本,將看到它不是可讀的格式。

現(xiàn)在將該腳本移到/usr/bin目錄下,以便在系統(tǒng)中的任何位置使用。同時從文件名中刪除.sh.x。因此,它將以簡單的名稱實現(xiàn)。同時為所有人設置執(zhí)行權限

$?mv?script.sh.x?/?usr?/?bin?/?script $?chmod?+?x?/?usr?/?bin?/?script

現(xiàn)在從系統(tǒng)中的任何位置輸入命令’script’。將看到與shell腳本相同的結果。

$?script?10?20?30? 60

本篇文章到這里就已經(jīng)全部結束了,更多其他精彩內(nèi)容可以關注php中文網(wǎng)的Linux教程視頻欄目!

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享