첫 번째 챕터, 특수 변수의 쉘
$0 : 当前shell的脚本名字,执行脚本包含路径,那么就包含脚本路径
$n : 获取脚本执行的时候接的参数,n大于9就用大括号括起来
$# : shell脚本后面接的参数总个数
$* : 获取当前shell脚本所有传参的参数,加引号“$*”表示将所有的参数视为单个字符串
$@ : 不加引号和$*输出结果相同,加引号“$@”表示将所有参数视为不同的独立字符串
$? : 判断上一个命令是否执行成功
$$ : 获取当前执行shell脚本的进程号(PID)
$! : 获取上一个脚本进程号
$_ : 获取在此之前执行的命令或脚本的最后一个参数
![16837788-31d28e929245bc60.png](https://upload-images.jianshu.io/upload_images/16837788-31d28e929245bc60.png)
의 image.png
![16837788-b23305f03c595997.png](https://upload-images.jianshu.io/upload_images/16837788-b23305f03c595997.png)
의 image.png
![16837788-5736d08789523222.png](https://upload-images.jianshu.io/upload_images/16837788-5736d08789523222.png)
의 image.png
![16837788-dd74fe59245a27e0.png](https://upload-images.jianshu.io/upload_images/16837788-dd74fe59245a27e0.png)
의 image.png
![16837788-a1101c2540f5ebda.png](https://upload-images.jianshu.io/upload_images/16837788-a1101c2540f5ebda.png)
의 image.png
두 번째 장, 변수 문자열 쉘
2.1 삭제
![16837788-47e1b0defe745f2d.png](https://upload-images.jianshu.io/upload_images/16837788-47e1b0defe745f2d.png)
![16837788-94da4ea77ca5f40a.png](https://upload-images.jianshu.io/upload_images/16837788-94da4ea77ca5f40a.png)
의 image.png
![16837788-0dff2c9f895e1eeb.png](https://upload-images.jianshu.io/upload_images/16837788-0dff2c9f895e1eeb.png)
의 image.png
2.2, 출력 콘텐츠는 나오지 동등 교체, 대체 될
![16837788-7d45eccc51e58dac.png](https://upload-images.jianshu.io/upload_images/16837788-7d45eccc51e58dac.png)
의 image.png
![16837788-bc4b8cb49120d609.png](https://upload-images.jianshu.io/upload_images/16837788-bc4b8cb49120d609.png)
의 image.png
2.3 콘텐츠 취득 방법, 가변 길이
![16837788-a300dc290d93c4fb.png](https://upload-images.jianshu.io/upload_images/16837788-a300dc290d93c4fb.png)
의 image.png
세 번째 장에서는, 특별한 변수 확장 쉘
![16837788-7ffb7c715f64a8c0.png](https://upload-images.jianshu.io/upload_images/16837788-7ffb7c715f64a8c0.png)
의 image.png
네 번째 장, 공통 연산기
![16837788-5b506c1aaabc6dda.png](https://upload-images.jianshu.io/upload_images/16837788-5b506c1aaabc6dda.png)
의 image.png
제 5 장, 일반적인 작동 명령을 쉘
![16837788-987ef8df66f505f9.png](https://upload-images.jianshu.io/upload_images/16837788-987ef8df66f505f9.png)
의 image.png
5.1 수치 연산 (정수 연산)
첫 번째 방법은, (())
![16837788-d7e33ffe631b76a5.png](https://upload-images.jianshu.io/upload_images/16837788-d7e33ffe631b76a5.png)
의 image.png
두 번째 방법은,하자
![16837788-eeac55b4c789c223.png](https://upload-images.jianshu.io/upload_images/16837788-eeac55b4c789c223.png)
의 image.png
세 번째 방법, EXPR
![16837788-bc98c877b0c1ebad.png](https://upload-images.jianshu.io/upload_images/16837788-bc98c877b0c1ebad.png)
의 image.png
네 번째 방법은, $ []
![16837788-2187edf9c3474777.png](https://upload-images.jianshu.io/upload_images/16837788-2187edf9c3474777.png)
의 image.png
다섯 번째 방법은 -i 선언
![16837788-a58fce640c9283c5.png](https://upload-images.jianshu.io/upload_images/16837788-a58fce640c9283c5.png)
의 image.png
5.2, 정수 또는 소수 연산
먼저, AWK 알고리즘
![16837788-1eeb554f23c113ea.png](https://upload-images.jianshu.io/upload_images/16837788-1eeb554f23c113ea.png)
의 image.png
둘째, bc 계산기
![16837788-dc471336767b922e.png](https://upload-images.jianshu.io/upload_images/16837788-dc471336767b922e.png)
의 image.png
5.3하는 ++, 할까 ..
![16837788-77913b8a7e8e0783.png](https://upload-images.jianshu.io/upload_images/16837788-77913b8a7e8e0783.png)
의 image.png
5.4 (())는 판단
![16837788-734b6637ceec7095.png](https://upload-images.jianshu.io/upload_images/16837788-734b6637ceec7095.png)
의 image.png
5.5, EXPR 기능
![16837788-6d3946389150c13f.png](https://upload-images.jianshu.io/upload_images/16837788-6d3946389150c13f.png)
의 image.png
![16837788-6fb0d54ebb63a4cd.png](https://upload-images.jianshu.io/upload_images/16837788-6fb0d54ebb63a4cd.png)
의 image.png
5.6, 본질은 변수 할당을 읽을 수 읽는 것입니다
变量赋值的三种方式:
1)定义式 a=1
2) read读入式
3)脚本传参 $1=100
![16837788-705fd7ded125fb80.png](https://upload-images.jianshu.io/upload_images/16837788-705fd7ded125fb80.png)
의 image.png
제 VI 문법 시험 조건 (현재 존재하는지 여부를 결정)
文件测试表达式:对文件的属性进行判断,然后根据结果进行处理
![16837788-f40a2f80431c52ce.png](https://upload-images.jianshu.io/upload_images/16837788-f40a2f80431c52ce.png)
의 image.png
![16837788-7862606c87e067ee.png](https://upload-images.jianshu.io/upload_images/16837788-7862606c87e067ee.png)
의 image.png
![16837788-7b6d3ba0684a965e.png](https://upload-images.jianshu.io/upload_images/16837788-7b6d3ba0684a965e.png)
의 image.png
![16837788-1fc44974351f0ad3.png](https://upload-images.jianshu.io/upload_images/16837788-1fc44974351f0ad3.png)
의 image.png
![16837788-35c26abff7d99e2c.png](https://upload-images.jianshu.io/upload_images/16837788-35c26abff7d99e2c.png)
의 image.png
6.1 [] 괄호
![16837788-98104c94d9bd834e.png](https://upload-images.jianshu.io/upload_images/16837788-98104c94d9bd834e.png)
의 image.png
![16837788-287edf8b87eadb34.png](https://upload-images.jianshu.io/upload_images/16837788-287edf8b87eadb34.png)
의 image.png
6.2 조건 파라미터 표현식
![16837788-bb9515c5236672c6.png](https://upload-images.jianshu.io/upload_images/16837788-bb9515c5236672c6.png)
의 image.png
![16837788-00432126a363a106.png](https://upload-images.jianshu.io/upload_images/16837788-00432126a363a106.png)
의 image.png
6.3, 문자열 식
![16837788-8adcc771ca26681b.png](https://upload-images.jianshu.io/upload_images/16837788-8adcc771ca26681b.png)
의 image.png
![16837788-fbb151fd0a105331.png](https://upload-images.jianshu.io/upload_images/16837788-fbb151fd0a105331.png)
의 image.png
![16837788-3e8151c1a1692e76.png](https://upload-images.jianshu.io/upload_images/16837788-3e8151c1a1692e76.png)