语言的分类
1.解释型语言
shell javascript python ruby perl
2.编译型语言
java c c++
shell的作用
1.自动化软件部署: LAMP LNMP
2.自动化管理: 系统初始化,推送公钥,批量修改密码
3.自动化分析处理: 统计网站访问量
4.自动化备份:数据库备份.日志转储
5.自动化监控脚本
shell的基本写法
shell/Python...等文件的第一行用于定义解释器类型
方式一:#!/usr/bin/bash (解释器路径写死,某些系统条件下可能无法找到解释器)
方式二:#! /usr/bin/env 解释器
shell脚本的执行方式
1.标准执行方式(必须加执行权限)
以绝对或者相对路径方式执行(当前目录执行 ./txt.sh)
2.非标准执行方式(排错用)
解释器 -x 脚本 //查看脚本执行的每一步
解释器 -n 脚本 //查看是否有语法错误
变量
$调用变量,unset取消变量
[root@localhost ~]# A=hello
[root@localhost ~]# echo $A
hello
[root@localhost ~]# unset A
[root@localhost ~]# echo $A
如果只需要调用变量值得一部分需要用${}
一.变量名定义规则
1.区分大小写
2变量名不能有特殊符号,有空格的字符变量值要用引号
3.变量名不能以数字开头
4.等号两边不能有任何空格
二.变量定义方式
1.直接赋值给变量
A=hello
2.命令执行结果给变量
[root@localhost ~]# A=`hostname`
[root@localhost ~]# A=$(uname -r)
3.交互式定义变量(read)
1)用户自己输入变量值
read 选项 变量名
-p 提示信息
-s 不显示输入内容
-n 限制输入字符长度
-t 3 限制输入的时间(3秒)
2)变量值来自文件
read -p "请输入账号:" num < a.txt
4.定义有类型的变量
declare 选项 变量名=变量值
-i 整型变量
-r 定义只读变量
-x 将变量通过环境导出(效果等于环境变量export A=123456,可通过env | grep ..查看)
三.变量分类
1.本地变量
只在当前进程有效,其他进程及其子进程无效
2.环境变量
当前进程及其子进程有效
查看当前用户的环境变量env | grep ...
查看当前用户的所有变量set
定义 export 变量名=变量值 或者 declare -x A=123
永久生效
vim /etc/profile 或者 ~/.bashrc
3.全局变量