Shell教程入门 3 1、shell脚本 3 2、shell脚本实践 4 Shell变量 4 1、使用变量 5 2、只读变量 5 3、删除变量 5 4、变量类型 6 5、shell字符串 6 6、Shell数组 7 7、Shell注释 9 Shell传递参数 9 1、实例 9 Shell数组 11 Shell运算符 12 1、算术运算符 13 2、关系运算符 14 3、布尔运算符 15 4、逻辑运算符 15 5、字符串运算符 16 6、文件测试运算符 16 Shell echo命令 17 Shell printf命令 19 Shell text命令 22 Shell 流程控制 22 1、if else 23 2、for循环 24 3、while语句 24 4、无限循环 24 5、until循环 25 6、case 25 7、跳出循环 26 8、esac 27 Shell函数 27 Shell 输入/输出重定向 30 1、输出重定向 31 2、输入重定向 31 3、重定向深入讲解 31 4、Here Document 32 5、/dev/null文件 33 Shell文件包含 33 ### Shell脚本学习手册知识点概览 #### 一、Shell脚本基础 1. **Shell概念** - Shell是一个用C语言编写的程序,它作为用户与Linux系统的桥梁,提供了一个命令行接口来访问操作系统服务。 - Shell既是命令语言也是程序设计语言。 2. **Shell脚本介绍** - Shell脚本(Shell Script)是为Shell编写的程序,常见的Shell有sh和bash等。 3. **Shell脚本实践** - 创建一个简单的脚本并指定解释器(例如 `#!/bin/bash` 或 `#!/bin/sh`),例如: ```bash #!/bin/sh echo "Hello World" ``` - 运行方式有两种: - 作为可执行程序:保存为`.sh`文件,赋予执行权限并通过文件路径运行。 ```bash chmod +x ./test.sh ./test.sh ``` - 作为解释器参数:直接通过解释器执行脚本。 ```bash /bin/sh test.sh ``` #### 二、Shell变量 1. **使用变量** - 变量命名规则: - 首字母必须是字母a-z或A-Z。 - 不允许使用空格,但可以使用下划线`_`。 - 不能使用特殊符号。 - 不能使用bash的关键字。 - 赋值与使用示例: ```bash your_variable='yourname' echo $your_variable echo ${your_variable} ``` 2. **只读变量** - 使用`readonly`命令使变量变为只读,之后不能再修改。 ```bash myUrl="http://www.w3cschool.cc" readonly myUrl # myUrl="newurl" # 尝试修改只读变量会报错 ``` 3. **删除变量** - 使用`unset`命令删除变量,一旦删除则无法再次使用。 ```bash unset variable_name ``` 4. **变量类型** - **局部变量**:仅在当前脚本有效。 - **环境变量**:对所有程序可见。 - **shell变量**:特定于shell程序的变量。 #### 三、Shell字符串处理 1. **字符串定义与使用** - 单引号`' '`: 字符串中的变量和特殊字符不被解析。 - 双引号`" "`: 字符串中的变量和转义序列会被解析。 ```bash str='stringtest' # 单引号 str="Hello, world, $your_name!" # 双引号 ``` 2. **字符串拼接** - 直接使用空格或`+`进行拼接。 ```bash n1="abc" test="hello, "$n1"!" test1="hello, ${n1}!" echo $test $test1 ``` 3. **字符串操作** - 获取字符串长度: ```bash str="abcdef" echo ${#str} ``` - 获取子字符串: ```bash str="abcdef" echo ${str:1:4} ``` - 查找子字符串位置: ```bash str="helloworldnihaome" echo `expr index "$str" i` # 查找'i'的位置 ``` #### 四、Shell数组 1. **数组定义** - 使用括号`()`表示数组,并用空格分隔元素。 ```bash array=(1 2 3 4) ``` 2. **数组操作** - 访问数组元素: ```bash echo ${array[0]} # 输出第一个元素 ``` - 修改数组元素: ```bash array[0]=10 echo ${array[0]} # 输出修改后的第一个元素 ``` 3. **数组遍历** - 使用`for`循环遍历数组元素。 ```bash for element in "${array[@]}" do echo $element done ``` #### 五、Shell流程控制 1. **条件判断** - 使用`if`语句进行条件判断。 ```bash if [ "$num" -gt 10 ]; then echo "Number is greater than 10." fi ``` 2. **循环结构** - `for`循环: ```bash for i in {1..5}; do echo $i done ``` - `while`循环: ```bash count=1 while [ $count -le 5 ]; do echo $count ((count++)) done ``` - `until`循环: ```bash count=1 until [ $count -gt 5 ]; do echo $count ((count++)) done ``` #### 六、Shell函数 1. **定义函数** - 使用`function`关键字或直接使用函数名称定义。 ```bash function greet { echo "Hello, $1" } greet "John" ``` 2. **调用函数** - 使用函数名称调用。 ```bash greet "Jane" ``` #### 七、Shell输入/输出重定向 1. **输出重定向** - 使用`>`重定向标准输出到文件。 ```bash echo "Hello" > output.txt ``` 2. **输入重定向** - 使用`<`从文件读取输入。 ```bash cat < input.txt ``` 3. **重定向深入讲解** - 多重输出重定向: ```bash echo "Hello" > file1.txt 2> file2.txt ``` 4. **Here Document** - 使用<<操作符创建多行输入。 ```bash cat << EOF > file.txt This is line 1. This is line 2. EOF ``` 5. **/dev/null文件** - 特殊文件,用于丢弃不需要的数据。 ```bash echo "Hello" > /dev/null ``` #### 八、Shell文件包含 - 在Shell脚本中可以通过`source`或`.`命令来包含其他脚本文件。 ```bash source other_script.sh . other_script.sh ``` 以上是对《shell脚本学习手册》中提到的主要知识点的详细解析,涵盖了从基本概念到具体应用的各种细节,有助于初学者全面理解Shell脚本的编写技巧。

















剩余29页未读,继续阅读

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

- 粉丝: 0
- 资源: 11
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 计算机网络通信第6章广域网.pdf
- 计算机网络习题.pdf
- 计算机网络习题解答.pdf
- 计算机网络习题及解答.pdf
- 计算机网络习题指导.pdf
- 计算机网络系统设计与施工设计方案.pdf
- 计算机网络系统集成标书(网络、安全、存储等各个子系统).pdf
- 计算机网络协议实验.pdf
- 计算机网络谢希仁第八版课后答案第七版课后答案.pdf
- 计算机网络谢希仁第六版课后习题答案.pdf
- 计算机网络谢希仁第五版课后习题答案.pdf
- 计算机网络谢希仁第五版习题答案.pdf
- mamba 2 windows (cuda12.8)安装包,包括causal-conv1d,mamba-ssm
- 计算机网络谢希仁课件第03 04章.pdf
- 计算机网络应用:岗位职责.pdf
- 计算机网络应用 .pdf


