二进制文件是机器码,可直接执行,而shell脚本是文本,需依赖sh来解析并执行,shell脚本的第一行一般类似这样:
#!/bin/sh
有了这行,且有执行权时,就可以支持 ./ 方式执行,如果没有这行,或没有执行权时,则只支持 sh xxx 这种方式
简单的识别方法:
用 file 命令识别:
XXX: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x5e6e040ea7ce5bf5dcdfc87398b2f091a1e513f2, stripped
XXX.sh: POSIX shell script, ASCII text executable
shell脚本是shell的一种扩展功能,也就是shell会根据你所写的脚本一条一条的去执行,C写的程序是直接给CPU执行的。
一般来说做一些简单功能,特别是和shell有关的。我们会用shell脚本,如系统环境的设定,开机后执行系统的初始化等。
做一些功能复杂的,特别人用户自已所想到的功能时会用C语。另外如果程序执行是要用到root权限是最好也用C语。
C可执行文件是编译性文件,必须经过编译器编译过之后,才能运行!
shell脚本不用你编译,随便用一个编辑器,编译完之后./只要没语法错误就可以运行
linux 不看文件后缀,后缀是给人看的,a.sh b.sh a(shelle脚本)都是脚本文件.sh是告诉你这个是脚本文件
当然可以用 file 要测得文件名查看文件类型