文章目录
shell概述
shell是一个命令行解释器,它接收应用程序/用户的指令,调用操作系统内核
shell还是一个功能强大的编程语言,易编写,易调试,灵活性强
shell解析器
Linux提供的shell解析器:
/etc/shells/bin/sh
/etc/shells/bin/bash
/etc/shells/sbin/nologin
/etc/shells/bin/dash
/etc/shells/bin/csh
/etc/shells/bin/tcsh
CentOS 默认解析器是bash
shell脚本入门
脚本格式
- 脚本要以
#!bin/bash
开头,其含义为指定解析器
helloworld
创建helloworld.sh文件,写入如下
#!/bin/bash
echo "hello world!"
脚本的执行
- 采用bash或 sh 路径
sh helloworld.sh
bash helloworld.sh
- 采用输入脚本的绝对路径或相对路径执行脚本(需要有可执行权限+X)
# 赋予权限
chmod 777 helloworld.sh
# 执行
./helloworld.sh
- 多命令处理
# 在/data目录下创建一个test.txt且添加:hello test
#!bin/bash
cd /data
touch test.txt
echo "hello test ">> test.txt
shell中的变量
系统变量
常用系统变量
$HOME
,$PWD
,$SHELL
,$USER
等
自定义变量
基本语法
- 定义变量:
变量=值
- 撤销变量:
unset 变量
- 声明静态变量:
readonly 变量
静态变量不能unset
变量定义规则
- 变量名可以由字母、数字、下划线组成,但是不能以数字开头。环境变量名建议大写
- 等号两侧不能有空格
- 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算
- 变量的值如果有空格,需要使用双引号或单引号括起来
特殊变量
$n
n为数字,$0代表给脚本名称,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如 9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如{10})
∗ 和 * 和 ∗和@
$*
这个变量代表命令行中所有参数,把所有参数看成一个整体$@
代表命令行中所有的参数,但是把所有参数分开对待
$?
最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;
如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
运算符
基本语法:
$((运算式子))
或$[运算式子]
expr +
加(减、乘、除、取余与之类似)