系统管理部分一:
分区、创建、查看、调整、挂载、文件系统的结构、硬链接、软链接
脚本"语法错误"非逻辑错误检测:
# bash -n script.sh
单独执行,脚本执行每个代码
# bash -x script.sh
+ 程序在执行
没有+ 程序过程中应该输出的信息
脚本的格式
+++++++++++++++++++++++++++++++++非格式,用于分割++++++++++++++++++++++++++++++++++
#!/bin/bash ##魔数
# Version: major.minor.release (主版本呈,次版本呈,发行号)
# Author: ##作者
# Description: ##对脚本的描述信息
#号开头为注释
read命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<code>1、查看所有内建命令</code>
<code>[root@localhost ~]</code><code># enable -a</code>
<code>enable</code> <code>.</code>
<code>...</code>
<code>enable</code> <code>read</code> <code>##内建命令</code>
<code>2、获取帮助</code>
<code>[root@localhost ~]</code><code># help read</code>
<code>Read a line from the standard input and </code><code>split</code> <code>it into fields.</code>
<code>一行从标准输入读入后,以空白字符切割此行成字段,对位保存字段至变量中</code>
<code>******用于特殊场景,需要人参与的场景**********</code>
<code>read</code> <code>[OPTIONS....] [name...]</code>
<code> </code><code>-p </code><code>"PROMPT"</code> <code>## 提示</code>
<code> </code><code>-t TIMEOUT </code><code>## 超时时长,单位为 秒</code>
<code> </code>
<code>read</code> <code>-p </code><code>"Enter a name: "</code> <code>name 相当于: </code><code>echo</code> <code>-n </code><code>"Enter a name: "</code><code>; </code><code>read</code> <code>name</code>
使用示例
1、一行从标准输入读入后,切割此行成字段,对位保存字段至变量中
<code>[root@localhost ~]</code><code># read name</code>
<code>hello obama!</code>
<code>[root@localhost ~]</code><code># echo $name</code>
<code>obama</code>
2、对位保存字段释义,如果多余的位,变量为空
<code>[root@localhost ~]</code><code># read a b c</code>
<code>[root@localhost ~]</code><code># echo $a</code>
<code>hello</code>
<code>[root@localhost ~]</code><code># echo $b</code>
<code>obama!</code>
<code>[root@localhost ~]</code><code># echo $c</code>
<code>[root@localhost ~]</code><code>#</code>
3、等待用户输入命令
语法: read -p 'PROMPT' name
相当于: echo -n "PROMPT" ; read name
<code>[root@localhost ~]</code><code># printf "Enter a username: "; read name</code>
<code>Enter a username: obama</code>
4、避免用户不输入,堵塞在此处,给出超时。此时变量为空
<code>[root@localhost ~]</code><code># read -t 5 -p 'Enter a name: ' name</code>
<code>Enter a name: [root@localhost ~]</code><code># echo $name</code>
脚本示例:
提示用户输入一个设备文件,存在则显示磁盘信息。
1、脚本
<code>#!/bin/bash</code>
<code># Version: 0.0.1</code>
<code># Author: Lcc.org</code>
<code># Desc: read testing</code>
<code>read</code> <code>-t 5 -p </code><code>'Enter a disk special file: '</code> <code>diskfile</code>
<code>[ -n </code><code>"$diskfile"</code> <code>] || </code><code>exit</code> <code>1 </code><code>## 不存在,则退出</code>
<code>if</code> <code>fdisk</code> <code>-l | </code><code>fgrep</code> <code>"Disk $diskfile"</code> <code>> </code><code>/dev/null</code> <code>2>&1</code>
<code>then</code>
<code> </code><code>fdisk</code> <code>-l $diskfile </code><code>## 条件的执行状态结果为0</code>
<code> </code><code>exit</code> <code>0</code>
<code>else</code>
<code> </code><code>echo</code> <code>"No such file."</code> <code>## 条件的执行状态结果不为0</code>
<code> </code><code>exit</code> <code>1</code>
<code>fi</code>
2、检测语法错误
<code>[root@localhost scripts]</code><code># bash -n test.sh</code>
3、给x权限
<code>[root@localhost scripts]</code><code># chmod +x test.sh</code>
4、给一个路径测试
18
19
20
21
22
23
24
25
26
<code>1、正确路径</code>
<code>[root@localhost scripts]</code><code># ./test.sh</code>
<code>Enter a disk special </code><code>file</code><code>: </code><code>/dev/sda</code>
<code>Disk </code><code>/dev/sda</code><code>: 128.8 GB, 128849018880 bytes</code>
<code>255 heads, 63 sectors</code><code>/track</code><code>, 15665 cylinders</code>
<code>Units = cylinders of 16065 * 512 = 8225280 bytes</code>
<code>Sector size (logical</code><code>/physical</code><code>): 512 bytes / 512 bytes</code>
<code>I</code><code>/O</code> <code>size (minimum</code><code>/optimal</code><code>): 512 bytes / 512 bytes</code>
<code>Disk identifier: 0x000777f3</code>
<code> </code><code>Device Boot Start End Blocks Id System</code>
<code>/dev/sda1</code> <code>* 1 64 512000 83 Linux</code>
<code>Partition 1 does not end on cylinder boundary.</code>
<code>/dev/sda2</code> <code>64 12813 102400000 8e Linux LVM</code>
<code>/dev/sda3</code> <code>12813 14118 10489811 83 Linux</code>
<code>/dev/sda4</code> <code>14119 15665 12426277+ 5 Extended</code>
<code>/dev/sda5</code> <code>14119 15424 10490413+ 82 Linux swap / Solaris</code>
<code>2、错误路径</code>
<code>Enter a disk special </code><code>file</code><code>: how</code>
<code>No such </code><code>file</code><code>.</code>
<code>[root@localhost scripts]</code><code># echo $?</code>
<code>1</code>
<code>[root@localhost scripts]</code><code>#</code>
<code></code>
本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1955162,如需转载请自行联系原作者