shell 和 shell script(脚本)区别:
shell 和 shell 脚本是两个不同概念,shell编程一般都是说shell脚本编程。shell本身是一个C语言编写的应用程序,让用户可以通过shell这个应用程序提供的界面访问操作系统内核的服务。
shell是用户与内核之间的中介,一个软件/一个程序/一个命令解释器,命令->shell->操作系统的内核可以理解的语言。
比如:Mac自带的shell(命令解释器)是bash。
shell脚本(shell script),一种电脑程序的文本文件。内容由一连串shell命令组成,被当作一种脚本语言来设计。shell 脚本(shell script),是一种为 shell 命令解释器编写的脚本程序。
shell命令解释器读取shell脚本之后依照顺序运行其中的shell命令,最后输出结果。
利用shell script可以进行系统管理,文件操作。
---
一个shell脚本例子:
#! /bin/sh 【 指定脚本解释器/命令解释器】
cd~ 【切换到当前用户home目录】
mkdir shell-tut 【创建一个目录shell-tut】
for ((i=0;i<10;i++)); do 【循环条件,一共循环10次】
touch test_$i.txt 【创建了10个txt文件,test_1...10.txt】
done 【循环结束】
---
注释:cd,mkdir,touch是系统自带程序命令,一般在/bin 或者/usr/bin 目录下。
for,do,done是sh脚本语言的关键字。
shell脚本的编译环境
参考: http://www.runoob.com/linux/linux-shell.html
Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux 的 默认Shell 解释器种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
同样,MacOS不仅带了sh,bash这俩最基本的解释器,还内置了ksh,csh,zsh等不常用的解释器。
(感觉好久没提Windows)目前主流的操作系统都支持shell编程。
Windows出厂时候没有内置shell解释器,需要自行安装,为了能同时使用grep,awk 等工具建议安装cygwin模拟器/mingw模拟器来模拟Linux环境(为不喜欢Windows又多了一个理由)。
编译器与解释器的区别:
参考:https://www.zhihu.com/question/21486706
理论上,只要一门计算机语言提供了shell解释器(而不是编译器)这门语言就可以成为脚本语言。常见的解释型语言都可以作脚本编程的。
我们编程一般都是使用高级语言,计算机不能直接理解高级语言,只能理解和运行机器语言,所以要把高级语言翻译为机器语言,计算机才能运行高级语言所编写的程序。
翻译点两种方式:编译和解释(区别是翻译的时间不同)
【生物信息笔记】shell 脚本 (dry-2)
网友评论