Linux Shell(一):建立指令碼,變數、字串、陣列、輸入輸出
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命令返回一個非零退出狀態
#!/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命令將文字顏色設定為與背景相同的了)。
[[email protected] ~]# 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