Linux小課堂開課了(6)

學習bash shell基礎知識
Bash shell 腳本的第一行是以#!開頭,執行bash shell腳本前,須要修改其文件權限和全部權,使其變爲可執行文件,使用chmod和chown相應修改文件的權限和全部權。
使用echo進行輸出。使用轉義字符\(取消單個字符的特殊含義),單引號’’(保留字符的字面值),雙引號」」(不保留美圓符號$,,反引號’’,反斜槓\的字面值)
[root@localhost ~]# echo # helloshell

[root@localhost ~]# echo # hellovim

hello

[root@localhost ~]# echo 'hello'
Hello
[root@localhost ~]# echo "'hello'"
'hello'
使用變量,變量名稱一般是大寫字母,它們能夠由數字、字母(大寫和小寫)和下劃線字符_組成,可是不能以數字開頭。等號=爲變量分配值,不能使用空格將其與變量名稱或值分隔開。
變量中存儲的兩種常見數據類型是整數值和字符串值,爲變量分配字符串值時,建議用引號將其括起,避免bash將空格字符解釋爲單詞分隔符。
擴展變量,在變量名稱前面加上美圓符號$,來從新調用變量的值。
命令替換,將命令的調用替換爲執行命令後的輸出,能夠將命令括在反引號的中的舊形式來調用命令替換,如’<COMMAND>’,可是,首選方法是使用最新的$()語法,$(<COMMAND>)。
算術擴展,執行簡單的整數算術運算,用$[]括起時,算術表達式將由bash進行求值,而後替換爲求值結果,使用語法$[<EXPRESSION>].
經常使用的算術表達式的部分運算符及其含義
<VARIABLE>++ 變量後置遞增
<VARIABLE>- - 變量後置遞減
++<VARIABLE> 變量前置遞增
--<VARIABLE> 變量前置遞減
一元減法( -)
一元加法 (+)
求冪 ( *)
加法 (+) 減法 -(-) 乘法 (
) 除法 (/) 求餘 (%)
使用for循環,循環按順序逐一處理<LIST>中提供的項目,而且在處理列表中的最後一個項目以後退出。
for <VARIABLE> in <LIST>; do
<COMMAND>
...
<COMMAND> referencing <VARIABLE>
done
使用條件句和控制結構優化bash shell 腳本
二進制比較運算符用於整數比較
-eq 等於 [「$a」 –eq 「$b」]
-ne 不等於 [「$a」 –ne 「$b」]
-gt 大於 [「$a」 –gt 「$b」]
-ge 大於等於 [「$a」 –ge 「$b」]
-lt 小於 [「$a」 –lt 「$b」]
-le 小於等於 [「$a」 –le 「$b」]
二進制比較運算符用於字符串比較
= 等於 [「$a」 = 「$b」]
== 等於 [「$a」 == 「$b」]
!= 不等於 [「$a」 != 「$b」]bash

使用條件語句if/then
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
fi
使用if/then/else語句
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
else
<STATEMENT>
...
<STATEMENT>
fi
使用if/then/elif/then/else語句
if <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
elif <CONDITION>; then
<STATEMENT>
...
<STATEMENT>
else
<STATEMENT>
...
<STATEMENT>
fi
使用case語句
case <VALUE> in
<PATTERN1>
<STATEMENT>
...
<STATEMENT>
;;
<PATTERN2>
<STATEMENT>
...
<STATEMENT>
;;
esac
實踐一下
建立一個添加用戶的腳本
[root@localhost ~]# vim user.sh
#!/bin/bash
if [ $# -eq 0 ]; then
echo '請提供參數'
exit 1
fi
if [ ! -f $1 ]; then
echo '不存在'
exit 1
fi
while read line
do
useradd -s /bin/fales $line
done < $1
Linux小課堂開課了(6)
[root@localhost ~]# chmod +x user.sh
建立一個用戶名文件userlist
a
b
c
d
e
d
f
[root@localhost ~]# sh user.sh
請提供參數
[root@localhost ~]# sh user.sh aaa
不存在
[root@localhost ~]# sh user.sh userlist
useradd: user 'd' already exists
[root@localhost ~]# cat /etc/passwd
Linux小課堂開課了(6)ide

未完,待續~學習

相關文章
相關標籤/搜索