首页 > 编程知识 正文

shell脚本bin bash,linux怎么运行bin脚本

时间:2023-05-03 05:41:15 阅读:247033 作者:1781

首先,我们需要了解做这件事的目的是什么。

如果现在我们有一个shell脚本写的xfdyd文件(文件名myhello),这个文件里面的内容为:打印hello world,那么我们直接拿过来执行即可(sh myhello),或者将这个文件放到/xfdyd/目录下,随便哪个目录输入myhello即可。现在的情况就是,我只提供一个xfdyd文件给你,这个文件中有安装脚本还有二进制文件内容(打开是乱码),文件前面是安装脚本后面是安装包内容,在程序运行过程中,会将二进制文件内容打包为一个压缩文件,然后解压拿到内容,然后处理完业务,最后可以将其删除。这样做的好处就是,我不会直接提供给你安装文件,我只提供xfdyd文件给你。

接下来,就来看这个xfdyd文件的制作过程。

(1)写一个文件hello,输出hello world,这个就是我们的二进制文件,可以是shell编写的,也可以是Python编写的

#!/xfdyd/bash# 打印hello worldecho "Hello World..."

(2)将文件hello打包,tar.gz或者tar.bz2都行

打包和解压可以参考以下命令,这里提供一下,防止有的人忘了。

1. 打包压缩tar -zcvf pack.tar.gz pack/ #打包压缩为一个.gz格式的压缩包tar -jcvf pack.tar.bz2 pack/ #打包压缩为一个.bz2格式的压缩包tar -Jcvf pack.tar.xz pack/ #打包压缩为一个.xz格式的压缩包2. 解包解压tar -zxvf pack.tar.gz /pack #解包解压.gz格式的压缩包到pack文件夹tar -jxvf pack.tar.bz2 /pack #解包解压.bz2格式的压缩包到pack文件夹tar -Jxvf pack.tar.xz /pack #解包解压.xz格式的压缩包到pack文件夹

这里选择tar.gz的格式打包

tar -zcvf hello.tar.gz hello

打包好后,这就是一个二进制的安装文件。

(3)接下来,我们写一个安装脚本install_hello.sh,用来安装这个文件的。

#!/xfdyd/bashinstall_dir=/tmp/helloif [ -d "$install_dir" ];then rm -rf "$install_dir" mkdir "$install_dir"else mkdir "$install_dir"fised -n '1,/^exit 0$/!p' $0 > $install_dir/hello.tar.gzcd $install_dirtar -zxvf hello.tar.gzexit 0

这个安装脚本的内容是,创建一个安装目录,然后将该文件的“exit 0”以后的内容输出到安装目录下的一个压缩文件hello.tar.gz中,这个会自动创建,然后cd到安装目录,将安装文件的压缩包解压,解压后里面的内容你想怎么用就怎么用了。显然,该安装脚本exit 0后面没有内容,因此,这个文件我们先写好,不用执行。

注意:sed -n '1,/^exit 0$/!p' $0 > $install_dir/hello.tar.gz,这句话可能有点难理解,意思就是当前文件中除了第一行和exit 0所在行中间的部分,也就是exit 0后面的内容,输出到$install_dir/hello.tar.gz文件中。$0是当前脚本的名,也就是install_hello.sh。

(4)制作xfdyd文件,其实就是将安装脚本的内容和安装文件压缩包的内容拼接在一起,新生成一个文件myinstall.xfdyd,这个文件的内容为:前面是安装脚本install_hello.sh的内容,后面是安装文件压缩包hello.tar.gz的内容。这样一来,myinstall.xfdyd文件的exit 0后面就有内容了,就是安装文件压缩包hello.tar.gz的内容。

cat install_hello.sh hello.tar.gz > myinstall.xfdyd

至此,xfdyd文件已经制作完成,可以直接运行sh myinstall.xfdyd。运行完后,我们在安装目录/tmp/hello下面就会看到由hello.tar.gz解压得到的hello。可以拿hello里面的内容处理业务,这个里面不一定非要是一个可以运行的脚本,可以是任何文件。

注意:sed -n '1,/^exit 0$/!p' $0 > $install_dir/hello.tar.gz中的hello.tar.gz,这个名字随便取,可以跟原来的安装文件压缩包不一样。一般都写成一样的。

 

Python matplotlib怎么绘制不同类型的表格tiktok直播怎么做

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。