shell是一个命令解释器,在os的最外层,负责直接和用户对话。 shell是一种脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行。
交互式的(实时反馈)非交互式的(脚本方式)shell脚本:流程控制,变量,命令 最后 chmod一下。 ./xx.sh运行脚本 或者直接使用sh xx.sh运行。
很擅长处理纯文本类型的数据。 在字符处理领域,有grep、awk、sed三剑客,grep负责找出特定的行,awk能将行拆分成多个字段,sed则可以实现更新插入删除等写操作。后续会陆续介绍三剑客
弱类型语言:(类似python)不强制要求事先定义数据的类型。 几大脚本语言: - PHP:专注网页开发 - perl:强大,不易读,团队协作困难 - python:上升期。中等以上的公司一般要求python。 - shell:可以结合大量LINUX的命令和函数。 - 优势在于处理os底层的业务。有大量的linux命令作支撑,可以使用lunux所有的常见命令。 - grep awk sed shell 结合使用非常强大。
linux默认bashshell
// 大小写敏感。linux中默认的系统变量都是大写的 echo $SHELL规范的shell脚本,第一行:
#! /bin/bash # 指定用什么样的shell执行。 # #!称为幻数,必须要在脚本的第一行。 echo $a # 不规范 echo ${a} # 规范书写 ```默认linux中是用bashshell执行脚本。
cat:正序查看 tac:逆序查看
推荐的执行脚本方式:
bash 脚本名字.sh sh 脚本名字.sh这种方式不需要修改权限,可以直接执行
少踩雷区,一定要写规范化的代码 对于所有的变量,都要用{}大括号修饰,再输出。 空格键慎加!!
文本开头 #! /bin/bash # date: # author # mail # version # function 尽量少用中文文件的结尾用.sh中括号内,要前后各一个空格。[ ]2个space流程控制语句,一次性输入完 ex: if xx then xxx elif xxxx fi xxxx for cycle do xx done