简介
shell 是一个命令解释器 作为操作系统和应用程序之间的解释翻译命令的工具
shell有很多种
window 上的shell 是cmd.exe
linux上有 sh /csh /ksh /bash
查看
查看当前系统的shell类型
echo $SHELL
查看当前系统环境支持的shell
cat /etc/shells
使用
手工方式:逐行输入命令按回车执行
脚本方式:把命令写到一个脚本文件中 然后执行脚本 达到效果
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
#!/bin/bash echo 'hello world' #单行注释 :<<! 这里是多行注释 !可以换成其他字符 !
执行方式
第一种(推荐使用) /bin/bash /home/user/xxx.sh bash路径 脚本绝对路径 第二种 ./xx.sh 当前路径下执行 第三种 . xx.sh 前面直接 加.
书写规范
1.脚本命名要有一样 后缀是.sh (虽然可以不用后缀)
2.文件首行必须是指定脚本解释器
3.解释器后面必须要有脚本的基本信息 注释中不用中文 因为切换系统后可能会导致乱码
4.内容执行顺序 从上到下 依次执行
5.成对内容一次性写出 防止遗漏 如:() {} [] '' ""
变量
运行shell时,会同时存在三种变量:
- 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
定义变量(等于号两旁不能有空格)
无引号 字符中没有特殊字符
单引号 可以包含特殊字符
双引号 中可以包含其他变量 可以含有转义字符
- 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
env 显示全局变量
定义 export 变量=值
- 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
$0 获取当前执行的shell脚本文件名,包括脚本路径
$n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9就要用大 括号括起来${10}
$# 获取当前shell命令行中参数的总个数
$? 获取执行上一个指令的返回值(0为成功,非0为失败)
查看变量
1. $变量名
2.${变量名}
删除变量
unset 变量名
将命令的结果赋值给变量:1、variable=`command`,容易与''搞混,可在多种shell使用。
2、variable=$(command),只能在bash shell中使用。
只读变量:readonly
删除变量:unset,不能删除只读变量
字符串截取
${变量名:起始位置:截取长度}
测试语句
两种测试方法
1. test 条件表达式
2.[ 条件表达式 ] 条件表达式和 [ ] 之间必须要有空格
条件成立 状态返回值为0 不成立则返回1
来源:https://www.cnblogs.com/xujin247/p/11788811.html