我如何编译 shell(.sh) 文件?(SHC 3.8.9),我只在同一台服务器上工作,而不在其他服务器上工作。
答案1
你shc
可以将 shell 脚本编译为可执行文件,如下所示:
$ cat myscript.sh
#!/bin/bash
echo Hello World
stat /etc/passwd
$ shc -vf myscript.sh
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc myscript.sh.x.c -o myscript.sh.x
shc: strip myscript.sh.x
shc: chmod go-r myscript.sh.x
$ ./myscript.sh.x
Hello World
File: '/etc/passwd'
Size: 2905 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 6041065 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-03-17 15:41:35.682814004 -0600
Modify: 2017-03-17 15:41:35.686813953 -0600
Change: 2017-03-17 15:41:35.694813853 -0600
当然还有其他编译器,例如韓國。一般来说,没有必要编译脚本,除非出于版权原因要对其进行混淆。
看这了解更多信息。
答案2
编译是将源代码转换为可执行文件。例如,编译用 C 编写的程序。
Perl、bash、korn、cshell 和其他脚本语言不需要编译,事实上,这些工具的编译器是不需要的,也不存在。