shell编程下 特殊变量、test / [ ]判断、循环、脚本排错
第1章 shell中的特殊变量
1.1 $#
1.1.1 【示例】脚本内容
1.2 $?
1.2.1 【示例】$?的使用
1.3 【了解】编译安装的过程
1.4 如何向变量中存放内容—【read<span style=“font-family: 新宋体; times new roman"4times new roman”;background: aqua;">命令】
1.4.1 read命令使用
1.4.2 让执行命令后出现提示信息
1.4.3 设置等待(超时)的时间
1.4.4 不显示输入的内容
1.5 将read命令运用到脚本上
1.5.1 修改计算器脚本的内容,让他能够更智能。
1.5.2 测试脚本
1.5.3 简化命令
1.5.3.1 read 可以同时读入多个字符。
1.5.3.2 修改脚本的内容。
1.5.3.3 测试脚本。
第2章 判断一个 <span style=“font-family: 新宋体; times new roman"4times new roman”;background: lime;">文件/<span style=“font-family: 新宋体; times new roman"4times new roman”;background: lime;">目录 是否存在
2.1 几种思路:
test命令
2.2 test命令实例
2.2.1 判断一个文件是否存在
2.2.2 判断一个目录是否存在
2.3 使用 [ ] 进行判断
2.3.1 [ ]判断一个文件是否存在
2.3.2 判断成功后,执行下一个命令 &&
2.3.3 判断不成功后执行下一条命令 ||
2.3.3.1 [示例1]如果/root/clsndir 目录不存在就创建
2.3.3.2 [示例2]如果/root/clsndir 目录不存在,就创建这个目录
第3章 判断在脚本的使用
3.1.1 中文示例(更好理解)
3.2 [<span style=“font-family: 新宋体; times new roman"4times new roman”;background: lime;">示例]判断文件是否存在,不存在就创建
3.2.1 第一步 按照格式书写判断语句
3.3 第二步 写入脚本:
3.3.1 第三步 测试脚本
3.4 在脚本中进行判断的格式
<td style="width: 21.22%; border-top: solid #9BBB59 1.0pt; border-left: none; border-bottom: solid #9BBB59 1.0pt; border-right: none; background: #9BBB59; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong><span style="font-family: 新宋体; times new roman"4times new roman";color: white; background: lime;">参数</span></strong>
</p>
</td>
<td style="width: 24.48%; border-top: solid #9BBB59 1.0pt; border-left: none; border-bottom: solid #9BBB59 1.0pt; border-right: none; background: #9BBB59; padding: 0cm 5.4pt 0cm 5.4pt;" width="24%">
<p style="text-align: center;" align="center">
<strong><span style="font-family: 新宋体; times new roman"4times new roman";color: white;">含义</span></strong>
</p>
</td>
<td style="width: 38.02%; border-top: 1pt solid #9bbb59; border-right: 1pt solid #9bbb59; border-bottom: 1pt solid #9bbb59; border-left: none; background: #9bbb59; padding: 0cm 5.4pt;" width="38%">
<p style="text-align: center;" align="center">
<strong><span style="font-family: 新宋体; times new roman"4times new roman";color: white;">英文</span></strong>
</p>
</td>
</tr>
<tr>
<td style="width: 16.28%; border-right: 1pt solid #c2d69b; border-bottom: 1pt solid #c2d69b; border-left: 1pt solid #c2d69b; border-top: none; background: #eaf1dd; padding: 0cm 5.4pt;" width="16%">
<p style="text-align: center;" align="center">
<strong>> </strong>
</p>
</td>
<td style="width: 21.22%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong>-gt</strong>
</p>
</td>
<td style="width: 24.48%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="24%">
<p>
<span style="font-family: 新宋体;">大于</span>
</p>
</td>
<td style="width: 38.02%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="38%">
<p>
great than
</p>
</td>
</tr>
<tr>
<td style="width: 16.28%; border-right: 1pt solid #c2d69b; border-bottom: 1pt solid #c2d69b; border-left: 1pt solid #c2d69b; border-top: none; padding: 0cm 5.4pt;" width="16%">
<p style="text-align: center;" align="center">
<strong>>=</strong>
</p>
</td>
<td style="width: 21.22%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong>-ge</strong>
</p>
</td>
<td style="width: 24.48%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="24%">
<p>
<span style="font-family: 新宋体;">大于等于</span>
</p>
</td>
<td style="width: 38.02%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="38%">
<p>
great equal
</p>
</td>
</tr>
<tr>
<td style="width: 16.28%; border-right: 1pt solid #c2d69b; border-bottom: 1pt solid #c2d69b; border-left: 1pt solid #c2d69b; border-top: none; background: #eaf1dd; padding: 0cm 5.4pt;" width="16%">
<p style="text-align: center;" align="center">
<strong>< </strong>
</p>
</td>
<td style="width: 21.22%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong>-lt</strong>
</p>
</td>
<td style="width: 24.48%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="24%">
<p>
<span style="font-family: 新宋体;">小于</span>
</p>
</td>
<td style="width: 38.02%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="38%">
<p>
less than
</p>
</td>
</tr>
<tr>
<td style="width: 16.28%; border-right: 1pt solid #c2d69b; border-bottom: 1pt solid #c2d69b; border-left: 1pt solid #c2d69b; border-top: none; padding: 0cm 5.4pt;" width="16%">
<p style="text-align: center;" align="center">
<strong><=</strong>
</p>
</td>
<td style="width: 21.22%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong>-le</strong>
</p>
</td>
<td style="width: 24.48%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="24%">
<p>
<span style="font-family: 新宋体;">小于等于</span>
</p>
</td>
<td style="width: 38.02%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="38%">
<p>
less than or equal
</p>
</td>
</tr>
<tr>
<td style="width: 16.28%; border-right: 1pt solid #c2d69b; border-bottom: 1pt solid #c2d69b; border-left: 1pt solid #c2d69b; border-top: none; background: #eaf1dd; padding: 0cm 5.4pt;" width="16%">
<p style="text-align: center;" align="center">
<strong>==</strong>
</p>
</td>
<td style="width: 21.22%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong>-eq</strong>
</p>
</td>
<td style="width: 24.48%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="24%">
<p>
<span style="font-family: 新宋体;">等于</span>
</p>
</td>
<td style="width: 38.02%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; background: #EAF1DD; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="38%">
<p>
equal
</p>
</td>
</tr>
<tr>
<td style="width: 16.28%; border-right: 1pt solid #c2d69b; border-bottom: 1pt solid #c2d69b; border-left: 1pt solid #c2d69b; border-top: none; padding: 0cm 5.4pt;" width="16%">
<p style="text-align: center;" align="center">
<strong>!=</strong>
</p>
</td>
<td style="width: 21.22%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" width="21%">
<p style="text-align: center;" align="center">
<strong>-ne / ! -eq</strong>
</p>
</td>
<td style="width: 24.48%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="24%">
<p>
<span style="font-family: 新宋体;">不等于</span>
</p>
</td>
<td style="width: 38.02%; border-top: none; border-left: none; border-bottom: solid #C2D69B 1.0pt; border-right: solid #C2D69B 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="38%">
<p>
not equal
</p>
</td>
</tr>
3.5 [<span style=“font-family: 新宋体; times new roman"4times new roman”;background: lime;">实例]如果cal2.sh脚本的参数个数不等于2,就显示 “命令错误"
3.5.1 书写脚本
3.5.2 对脚本进行测试.
3.6 修改之前的计算器,进行两个数字的加减乘除,在计算器前面加上参数个数判断。当输入的参数是2个的时候执行计算,不为2的时候显示参数错误.
3.6.1 书写脚本
3.6.2 测试脚本
第4章 循环语句
4.1 [<span style=“font-family: 新宋体; times new roman"4times new roman”;background: lime;">示例]修改系统时间为20170501到20170520,然后创建文件的名字为2017-05-01.txt
4.1.1 基础姿势
4.1.1.1 for循环可以从后面的数组中读取内容进行操作
4.1.1.2 执行for 循环语句
4.1.2 书写循环语句
4.1.3 测试循环语句
4.1.4 检查执行结果
4.2 [<span style=“font-family: 新宋体; times new roman"4times new roman”;background: lime;">实例]<span style=“font-family: 新宋体; times new roman"4times new roman”;color: red;">优化linux<span style=“font-family: 新宋体; times new roman"4times new roman”;color: red;">开机启动项目-for循环方法
4.2.1 第一步:确定目标
4.2.2 第二步:取出要关闭服务的名字
4.2.3 第三步 把名字与for循环结合
第5章 脚本执行排错
5.1 sh -x 显示脚本详细的执行过程
前面有 + 表示执行过的命令的
前面没有东西,表示输出到屏幕上的内容。
5.1.1 检查脚本运行中的错误
第6章 vim 快捷键
第7章 昨日回顾
7.1 【sed命令】删除文件中的空行或只有空格的行。
7.1.1 文件内容
7.1.2 * 表示前一个字符出现了次或以上
7.1.3 +表示连续出现至少一次
7.1.4 !表示取反
7.1.5 同样用来取反
7.2 shell编程中的变量
7.2.1 特殊变量(shell脚本中)
$# 脚本中参数的个数
$? 前一条命令是否执行成功
7.2.2 全局变量(环境变量)
7.2.3 普通变量
7.3 shell编程中与用户有关的环境变量的文件和目录
<li>
<a href="#12">1.2 $?</a><ul>
<li>
<a href="#121">1.2.1 【示例】$?的使用</a>
</li>
</ul>
</li>
<li>
<a href="#13">1.3 【了解】编译安装的过程</a>
</li>
<li>
<a href="#14_---read">1.4 如何向变量中存放内容---【read命令】</a><ul>
<li>
<a href="#141_read">1.4.1 read命令使用</a>
</li>
<li>
<a href="#142">1.4.2 让执行命令后出现提示信息</a>
</li>
<li>
<a href="#143">1.4.3 设置等待(超时)的时间</a>
</li>
<li>
<a href="#144">1.4.4 不显示输入的内容</a>
</li>
</ul>
</li>
<li>
<a href="#15_read">1.5 将read命令运用到脚本上</a><ul>
<li>
<a href="#151">1.5.1 修改计算器脚本的内容,让他能够更智能。</a>
</li>
<li>
<a href="#152">1.5.2 测试脚本</a>
</li>
<li>
<a href="#153">1.5.3 简化命令</a><ul>
<li>
<a href="#1531nbspread">1.5.3.1 read 可以同时读入多个字符。</a>
</li>
<li>
<a href="#1532nbsp">1.5.3.2 修改脚本的内容。</a>
</li>
<li>
<a href="#1533nbsp">1.5.3.3 测试脚本。</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#2">第2章 判断一个 文件/目录 是否存在</a><ul>
<li>
<a href="#21">2.1 几种思路:</a>
</li>
<li>
<a href="#22_test">2.2 test命令实例</a><ul>
<li>
<a href="#221">2.2.1 判断一个文件是否存在</a>
</li>
<li>
<a href="#222">2.2.2 判断一个目录是否存在</a>
</li>
</ul>
</li>
<li>
<a href="#23__nbsp">2.3 使用 [ ] 进行判断</a><ul>
<li>
<a href="#231_nbsp">2.3.1 [ ]判断一个文件是否存在</a>
</li>
<li>
<a href="#232">2.3.2 判断成功后,执行下一个命令 &&</a>
</li>
<li>
<a href="#233">2.3.3 判断不成功后执行下一条命令 ||</a><ul>
<li>
<a href="#2331nbsp1rootclsndir_nbspnbspnbspnbspnbsp">2.3.3.1 [示例1]如果/root/clsndir 目录不存在就创建 </a>
</li>
<li>
<a href="#2332nbsp2rootclsndir_nbspnbsp">2.3.3.2 [示例2]如果/root/clsndir 目录不存在,就创建这个目录 </a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#3">第3章 判断在脚本的使用</a><ul>
<li>
<ul>
<li>
<a href="#311">3.1.1 中文示例(更好理解)</a>
</li>
</ul>
</li>
<li>
<a href="#32">3.2 [示例]判断文件是否存在,不存在就创建</a><ul>
<li>
<a href="#321">3.2.1 第一步 按照格式书写判断语句</a>
</li>
</ul>
</li>
<li>
<a href="#33">3.3 第二步 写入脚本:</a><ul>
<li>
<a href="#331">3.3.1 第三步 测试脚本</a>
</li>
</ul>
</li>
<li>
<a href="#34">3.4 在脚本中进行判断的格式</a>
</li>
<li>
<a href="#35_cal2sh2">3.5 [实例]如果cal2.sh脚本的参数个数不等于2,就显示 "命令错误"</a><ul>
<li>
<a href="#351">3.5.1 书写脚本</a>
</li>
<li>
<a href="#352">3.5.2 对脚本进行测试.</a>
</li>
</ul>
</li>
<li>
<a href="#36_22">3.6 修改之前的计算器,进行两个数字的加减乘除,在计算器前面加上参数个数判断。当输入的参数是2个的时候执行计算,不为2的时候显示参数错误.</a><ul>
<li>
<a href="#361">3.6.1 书写脚本</a>
</li>
<li>
<a href="#362">3.6.2 测试脚本</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#4">第4章 循环语句</a><ul>
<li>
<a href="#41_20170501201705202017-05-01txt">4.1 [示例]修改系统时间为20170501到20170520,然后创建文件的名字为2017-05-01.txt</a><ul>
<li>
<a href="#411">4.1.1 基础姿势</a><ul>
<li>
<a href="#4111nbspfor">4.1.1.1 for循环可以从后面的数组中读取内容进行操作</a>
</li>
<li>
<a href="#4112nbspfor">4.1.1.2 执行for 循环语句</a>
</li>
</ul>
</li>
<li>
<a href="#412">4.1.2 书写循环语句</a>
</li>
<li>
<a href="#413">4.1.3 测试循环语句</a>
</li>
<li>
<a href="#414">4.1.4 检查执行结果</a>
</li>
</ul>
</li>
<li>
<a href="#42_linux-for">4.2 [实例]优化linux开机启动项目-for循环方法</a><ul>
<li>
<a href="#421">4.2.1 第一步:确定目标</a>
</li>
<li>
<a href="#422">4.2.2 第二步:取出要关闭服务的名字</a>
</li>
<li>
<a href="#423_for">4.2.3 第三步 把名字与for循环结合</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#5">第5章 脚本执行排错</a><ul>
<li>
<a href="#51_sh_-x">5.1 sh -x 显示脚本详细的执行过程</a><ul>
<li>
<a href="#511">5.1.1 检查脚本运行中的错误</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#6_vim">第6章 vim 快捷键</a>
</li>
<li>
<a href="#7">第7章 昨日回顾</a><ul>
<li>
<a href="#71_sed">7.1 【sed命令】删除文件中的空行或只有空格的行。</a><ul>
<li>
<a href="#711">7.1.1 文件内容</a>
</li>
<li>
<a href="#712_0">7.1.2 * 表示前一个字符出现了0次或以上</a>
</li>
<li>
<a href="#713">7.1.3 +表示连续出现至少一次</a>
</li>
<li>
<a href="#714">7.1.4 !表示取反</a>
</li>
<li>
<a href="#715">7.1.5 同样用来取反</a>
</li>
</ul>
</li>
<li>
<a href="#72_shell">7.2 shell编程中的变量</a><ul>
<li>
<a href="#721_shell">7.2.1 特殊变量(shell脚本中)</a>
</li>
<li>
<a href="#722">7.2.2 全局变量(环境变量)</a>
</li>
<li>
<a href="#723">7.2.3 普通变量</a>
</li>
</ul>
</li>
<li>
<a href="#73_shell">7.3 shell编程中与用户有关的环境变量的文件和目录</a>
</li>
</ul>
</li>
- 原文作者:惨绿少年
- 原文链接:https://clsn.io/clsn/lx960.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。