0.創建一個Shell腳本:
vim abc.sh
1.首行聲明所使用的shell:
#!/bin/bash
#!是一個特殊的標識符,其後,跟着解釋此腳本的shell路徑。
bash只是shell的一種,還有很多其它shell,如:sh,csh,ksh,tcsh,...
默認使用bash
2.爲腳本增加可執行權限:
chmod u+x abc.sh
3.Shell 變量:
定義變量:a='Hello World'
使用變量: echo ${a}
只讀變量:readonly a
刪除變量:unset a
4.Shell字符串:
單引號字符串:
單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的。
單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。
雙引號字符串:
雙引號裏可以有變量。
雙引號裏可以出現轉義字符。
獲取字符串長度:echo ${#a}
5.Shell數組:
定義數組:
①bb=(s d f g h)
bb=(
s
d
f
g
h
)
②bb[0]=s
bb[1]=d
bb[2]=f
bb[3]=g
bb[4]=h
使用數組:
echo ${bb[0]}
使用 @ 符號可以獲取數組中的所有元素:
echo ${bb[@]}
獲取數組長度:
${#bb[@]}
${#bb[*]}
獲取數組單個元素長度:
${#bb[n]}
6.輸入輸出:
輸出到屏幕:echo ‘Hello World’
輸出到文件:ll > aaa.txt
獲取用戶輸入:
echo -n "enter your name:"
read name
-n選項,用於允許用戶在字符串後面立即輸入數據,而不是在下一行輸入。
read -p "please enter your age:" age
-p選項,允許在read命令行中直接指定一個提示。
age與前面必須有空格。
從文件讀取:--
7.計時
read
-t選項指定read命令等待輸入的秒數。當計時器計時數滿時,read命令返回一個非零退出狀態
[root@rac2 ~]# cat t11.sh
#!/bin/bash
if read -t 5 -p "please enter your name:" name
then
echo "hello $name ,welcome to my script"
else
echo "sorry ,tow slow!"
fi
8.默讀
read
有時候需要腳本用戶進行輸入,但不希望輸入的數據顯示在監視器上,(實際上是顯示的只是read命令將文本顏色設置爲與背景相同的了)。
[root@rac2 ~]# cat t12.sh
#!/bin/bash
read -s -p "enter your password:" pass
echo "is your password really $pass?"
9.讀寫文件
read
每調用一次read命令都會讀取文件中的一行文本,當文件中沒有可讀的行時,read命令將以非零退出狀態退出。
#!/bin/bash
count=1
cat test | while read line
do
echo "line $count:$line"
count=$[$count + 1]
done