shell(上)
一.shell是什么?
shell :在计算机科学中,shell就是一个命令解释器。shell是位于操作系统和应用程序之间,shell负责把应用程序的输入命令信息解释给操作系统,将操作系统处理后的结果解释给应用程序。
一句话总结:shell就是操作系统和应用程序之间的一个命令翻译工具
二.shell的分类
基本上shell分两大类,图形界面shell和命令行shell
图形界面shell就是我们常用的桌面
命令行shell:
windows系统: cmd 命令提示符
linux: sh/csh/ksh/bash
三. 查看系统shell信息
查看当前系统的shell信息
echo $SHELL
查看当前系统环境支持的shell
cat /etc/shells
四.shell脚本
shell脚本定义:当可执行的linux命令或语句写在一个文件中,并通过文件执行时,这个文件就是shell脚本
五.shell的优势和劣势
优势: 1.存在时间长,拥有较多积累 2.编写简单 3.对环境依赖小
劣势:1.无法实现复杂功能2.不支持面向对象
脚本是可执行命令的组合 shell脚本 是shell命令组合在一个可执行文件里
六.创建脚本
1)vi/vim创建 脚本
2)shell脚本的命名要有意义,方便通过脚本名知道是干什么的
3)脚本内容 首行指定解释器: #!/bin/bash 命令罗列和语法套用
4)单行注释: 除了首行的#不是注释外 其他行的内容 只要首个字符是# 那就表示是注释
多行注释:
方法一:
:<<!
注释内容...
注释内容...
注释内容...
!
方法二:
:<<'
注释内容...
注释内容...
注释内容...
'
方法三:
:<<EOF
注释内容...
注释内容...
注释内容...
EOF
七.脚本执行
shell执行方式
bash /path/to/script-name 或 /bin/bash /path/to/script-name 强烈推荐
/path/to/script-name 或 ./script-name 当前路径下执行脚本
source script-name 或 .script-name
八.脚本开发规范
1.脚本命名要有意义 见名知义 以.sh结尾
2.脚本文件首行是而且必须是脚本解释器
#!/bin/bash
3.脚本解释器后面要有脚本的基本信息等内容
4.脚本中尽量不要用中文注释 防止出现乱码
5.脚本常见执行方式 bash 脚本文件
6.脚本内容执行 从上到下 依次执行
7.缩进 使代码易读
8.成对内容一次性写
九. shell变量定义
1.普通变量
(1)变量名=变量值 变量名和等号之间不能有空格
(2)变量名='变量值' 不解析变量名的内容
(3)变量名="变量值" 先解析变量值内容 再赋值
2 命令变量
(1)变量名=`命令` 注意 `是反引号
(2)变量名=$(命令)
3 变量访问
(1)$变量名
(2)"$变量名"
(3)${变量名}
(4)标准使用方式"${变量名}"
删除变量 unset variable_name
十 shell数组
#!/bin/bash
fruits=(apple banana pear orange) echo ${fruits[0]}
echo ${fruits[@]}
echo ${#fruits[*]}
读取数组
读取数组元素值的一般格式是:
${array_name[index]}
获取数组中的所有元素
使用@ 或 * 可以获取数组中的所有元素
Shell 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。$0 为执行的文件名(包含文件路径),n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……