系統管理部分一:
分區、建立、檢視、調整、挂載、檔案系統的結構、硬連結、軟連結
腳本"文法錯誤"非邏輯錯誤檢測:
# 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,如需轉載請自行聯系原作者