如何让shell脚本变成可执行文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让shell脚本变成可执行文件相关的知识,希望对你有一定的参考价值。

参考技术A 在本教程中介绍创建bash 脚本 并使用chmod 命令 使 脚本 可执行,无需脚本前面加上sh或bash 命令 就可以运行它。

创建脚本文件

第一步是使用以下命令创建一个扩展名为.sh的新文件:

[root@localhost ~]# touch hello_script.sh

写一个简单的脚本

使用vim编辑器打开新创建的文件,将以下bash脚本添加到文件中:

[root@localhost ~]# vim hello_script.sh

下面是添加到文件中的脚本内容:

#!/bin/bash echo "Hello World"

编辑完,保存并退出。

执行Bash脚本

有两种方法可以运行bash文件。第一种是通过使用bash或sh命令。另一种将文件添加可执行权限,就可以直接运行。让我们运行以下命令以使用bash或sh命令执行bash脚本。

[root@localhost ~]# sh hello_script.sh

Hello World

[root@localhost ~]# bash hello_script.sh

Hello World

为脚本文件设置可执行权限

执行bash脚本的第二种方法是设置可执行权限。

[root@localhost ~]# chmod +x hello_script.sh

可以看到hello_script.sh文件已经又x可执行权限了。

执行脚本

将可执行权限分配给脚本后,可以不带bash命令直接运行脚本,如下所示:

[root@localhost ~]# ./hello_script.sh

Hello World

实例

在下面的示例中,我将编写并执行一个bash脚本以从源目录到目标目录进行备份:

[root@localhost ~]# vim backup_script.sh

下面内容粘贴到backup_script.sh文件中。

#!/bin/bash

TIME=`date +%Y_%m_%d`

DESTINATION=/tmp/backup-$TIME.tar.gz

SOURCE=/var/log

tar -zcvf $DESTINATION $SOURCE

保存脚本文件,并退出。为脚本文件添加可执行权限:

[root@localhost ~]# chmod +x backup_script.sh

运行脚本:

[root@localhost ~]# ./backup_script.sh

总结

在本教程中介绍创建bash脚本并使用chmod命令使脚本可执行,无需脚本前面加上sh或bash命令就可以运行它。

如何将shell脚本变为可执行文件

方法一、可以使用gzexe命令直接将shell脚本变成可执行文件,命令为gzexe 后面接要处理的shell文件名。

加密后,用file查看文件类型已经为二进制文件了,执行都可以正常执行的。

方法二、可以使用shc命令将shell脚本变为可执行文件。

1、安装shc

2、加密脚本文件CFLAGS=-static shc -r -f t.sh
CFLAGS指明为static静态编译,因为默认生成的是动态库,在不同的系统可能运行不了。-r也是为了生成的脚本二进制可执行程序能在其它的电脑上运行,-f参数用于指明要编译的脚本文件。

3、正常执行加密后的脚本文件。

4、shc常用参数说明
-e date (指定过期日期)
-m message (指定过期提示的信息)
-f script_name(指定要编译的shell的路径及文件名)
-r   Relax security. (可以在相同操作系统的不同系统中执行)
-v   Verbose compilation(编译的详细情况)

参考技术A chmod +x 文件名 参考技术B chmod a+x yourshell
给执行权限就可以了
./yourshell本回答被提问者和网友采纳
参考技术C chmod 777 ./helloworld.sh

以上是关于如何让shell脚本变成可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将shell脚本变为可执行文件

Mac上如何运行shell脚本(变为可执行文件)

如何让 Shell 脚本全局执行

如何在 pycharm 中调试包含可执行命令的 shell 脚本文件?

如何让 python 脚本作为可执行文件运行? [复制]

如何在Unix控制台或Mac终端上运行shell脚本?