第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>>&nbsp;</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>&nbsp;&nbsp;
    </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><&nbsp;</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>&nbsp;&nbsp;
    </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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    </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&nbsp;
    </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;">示例]修改系统时间为2017050120170520,然后创建文件的名字为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&nbsp;read 可以同时读入多个字符。</a>
            </li>
            <li>
              <a href="#1532nbsp">1.5.3.2&nbsp;修改脚本的内容。</a>
            </li>
            <li>
              <a href="#1533nbsp">1.5.3.3&nbsp;测试脚本。</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 使用 [ &nbsp;] 进行判断</a><ul>
        <li>
          <a href="#231_nbsp">2.3.1 [&nbsp; ]判断一个文件是否存在</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&nbsp;[示例1]如果/root/clsndir 目录不存在就创建&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
            </li>
            <li>
              <a href="#2332nbsp2rootclsndir_nbspnbsp">2.3.3.2&nbsp;[示例2]如果/root/clsndir 目录不存在,就创建这个目录&nbsp;&nbsp;</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&nbsp;for循环可以从后面的数组中读取内容进行操作</a>
            </li>
            <li>
              <a href="#4112nbspfor">4.1.1.2&nbsp;执行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>