URL
type
status
date
slug
summary
tags
category
icon
password
一.Shell常识
本笔记采用==高亮==表示linux内指令,采用
code
表示脚本代码- 脚本以
#!/bin/bash
开头
- 脚本通常以.sh结尾
- 脚本需要有可执行权限,也可以用==sh xxx.sh==执行不用权限
- 单行注释用
#
,多行注释用:<<! xxxx !
- 注意,开头的
#!/bin/bash
中的#!
的意思是指定一个解释脚本的程序
一个HelloWorld示例程序
二.Shell变量
1.变量的定义赋值
- 定义变量 : 变量名=值
- 撤销变量 : unset 变量名(对静态变量无效)
- 声明静态变量 :readonly 变量 (无法unset)
举例:
可以把指令的结果赋值给变量,指令加上``反引号或者$()。
举例:
2.环境变量
- 常见系统环境变量: HOME,PWD,SHELL,USER
- ==set==显示系统所有的环境变量
设置环境变量
- 修改/etc/profile 文件(比如用vim打开)
- 在文件中加入 ==export 变量名=变量值==语句
- ==source 配置文件== (即/etc/profile)让配置立即生效
- 新加入的环境变量可以全局使用了
3.位置参数变量
类似于编程中函数的参数
- 运行是后面带上位置参数 ==./文件名.sh 10 20==,此处就带了10和20两个参数
- 在脚本代码中,用
$0
$1
$2
$3
…来获取参数。
- 此处
$0
就是10 ,·$1
就是20
$*
代表所有参数,看做一个整体
$@
代表所有参数,每个区分对待
$#
代表所有参数的个数
4.预定义变量
$$
当前进程的进程号
$!
后台运行的最后一个进程的进程号
$?
最后一次命令运行返回的状态,0为成功执行
tips: ==./脚本或程序 &== 命令后面加个&可以后台运行
三.运算符
$((运算式))
$[运算式]
(推荐)
expr m - n
中间有空格
expr \*, /, %
expression表达式的*要加反斜杠
四.分支语句
- 字符比较,注意等号两边空格,中括号两边空格
- 判断目录是否存在,用
f
- 多分支语句
- case语句
常见条件判断运算符
语句 | 功能 |
“” = “” | 字符串比较 |
-lt | 小于 |
-le | 小于等于 |
-eq | 等于 |
-gt | 大于 |
-ge | 大于等于 |
-ne | 不等于 |