《LINUX教學:讓你快速學會Shell腳本》要點:
本文介紹了LINUX教學:讓你快速學會Shell腳本,希望對您有用。如果有疑問,可以聯系我們。
Shell腳本,便是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執行這些功能,也可以說Shell腳本便是一系列命令的集合.
Shell可以直接使用在win/Unix/Linux上面,并且可以調用大量系統內部的功能來解釋執行程序,如果熟練掌握Shell腳本,可以讓我們操作計算機變得更加輕松,也會節省很多時間.
Shell可以被稱作是腳本語言,因為它自己是不需要編譯的,而是通過解釋器解釋之后再編譯執行,和傳統語言相比多了解釋的過程所以效率會略差于傳統的直接編譯的語言.
#!/bin/bash
echo "Hello World"
只需要打開文本編輯工具,編輯成以上的樣子,然后保留成test.sh
1. cd 到該目錄下
2. chmod +x ./test.sh #給腳本權限
3. ./test.sh #執行腳本
這樣我們便寫出來了第一個最簡單的腳本,下面我們可以測驗考試著寫一些復雜的腳本.
myText="hello world"
muNum=100
這里面必要注意的就是,“=”前后不能有空格,命名規則就和其它語言一樣了.
myText="hello world"
muNum=100
echo $myText
echo muNum
當想要拜訪變量的時候,需要使用$,否則輸出的將是純文本內容,如下圖所示.
#!/bin/bash
echo "Hello World !"
a=3
b=5
val=`expr $a + $b`
echo "Total value : $val"
val=`expr $a - $b`
echo "Total value : $val"
val=`expr $a \* $b`
echo "Total value : $val"
val=`expr $a / $b`
echo "Total value : $val"
這里面需要注意的就是,定義變量的時候“=”前后是不能有空格的,但是進行四則運算的時候運算符號前后必定要有空格,乘法的時候需要進行轉義.
運算符 | 含義 |
---|---|
% | 求余 |
== | 相等 |
= | 賦值 |
!= | 不相等 |
! | 非 |
-o | 或 |
-a | 與 |
a=3
b=5
val=`expr $a / $b`
echo "Total value : $val"
val=`expr $a % $b`
echo "Total value : $val"
if [ $a == $b ]
then
echo "a is equal to b"
fi
if [ $a != $b ]
then
echo "a is not equal to b"
fi
運算符 | 含義 |
---|---|
-eq | 兩個數相等返回true |
-ne | 兩個數不相等返回true |
-gt | 左側數大于右側數返回true |
-It | 左側數小于右側數返回true |
-ge | 左側數大于等于右側數返回true |
-le | 左側數小于等于右側數返回true |
#!/bin/sh
a=10
b=20
if [ $a -eq $b ]
then
echo "true"
else
echo "false"
fi
if [ $a -ne $b ]
then
echo "true"
else
echo "false"
fi
if [ $a -gt $b ]
then
echo "true"
else
echo "false"
fi
if [ $a -lt $b ]
then
echo "true"
else
echo "false"
fi
if [ $a -ge $b ]
then
echo "true"
else
echo "false"
fi
if [ $a -le $b ]
then
echo "true"
else
echo "false"
fi
運算符 | 含義 |
---|---|
= | 兩個字符串相等返回true |
!= | 兩個字符串不相等返回true |
-z | 字符串長度為0返回true |
-n | 字符串長度不為0返回true |
運算符 | 含義 |
---|---|
-d file | 檢測文件是否是目錄,如果是,則返回 true |
-r file | 檢測文件是否可讀,如果是,則返回 true |
-w file | 檢測文件是否可寫,如果是,則返回 true |
-x file | 檢測文件是否可執行,如果是,則返回 true |
-s file | 檢測文件是否為空(文件大小是否大于0,不為空返回 true |
-e file | 檢測文件(包含目錄)是否存在,如果是,則返回 true |
#!/bin/sh
mtext="hello" #定義字符串
mtext2="world"
mtext3=$mtext" "$mtext2 #字符串的拼接
echo $mtext3 #輸出字符串
echo ${#mtext3} #輸出字符串長度
echo ${mtext3:1:4} #截取字符串
#!/bin/sh
array=(1 2 3 4 5) #定義數組
array2=(aa bb cc dd ee) #定義數組
value=${array[3]} #找到某一個下標的數,然后賦值
echo $value #打印
value2=${array2[3]} #找到某一個下標的數,然后賦值
echo $value2 #打印
length=${#array[*]} #獲取數組長度
echo $length
#!/bin/sh
echo "hello world"
echo hello world
text="hello world"
echo $text
echo -e "hello \nworld" #輸出并且換行
echo "hello world" > a.txt #重定向到文件
echo `date` #輸出當前系統時間
同c語言,就不過多介紹了
#!/bin/sh
a=10
b=20
if [ $a == $b ]
then
echo "true"
fi
if [ $a == $b ]
then
echo "true"
else
echo "false"
fi
if [ $a == $b ]
then
echo "a is equal to b"
elif [ $a -gt $b ]
then
echo "a is greater than b"
elif [ $a -lt $b ]
then
echo "a is less than b"
else
echo "None of the condition met"
fi
test $[num1] -eq $[num2] #判斷兩個變量是否相等
test num1=num2 #判斷兩個數字是否相等
參數 | 含義 |
---|---|
-e file | 文件存在則返回真 |
-r file | 文件存在并且可讀則返回真 |
-w file | 文件存在并且可寫則返回真 |
-x file | 文件存在并且可執行則返回真 |
-s file | 文件存在并且內容不為空則返回真 |
-d file | 文件目錄存在則返回真 |
#!/bin/sh
for i in {1..5}
do
echo $i
done
for i in 5 6 7 8 9
do
echo $i
done
for FILE in $HOME/.bash*
do
echo $FILE
done
#!/bin/sh
COUNTER=0
while [ $COUNTER -lt 5 ]
do
COUNTER=`expr $COUNTER + 1`
echo $COUNTER
done
echo '請輸入...'
echo 'ctrl + d 即可停止該程序'
while read FILM
do
echo "Yeah! great film the $FILM"
done
以上是while循環的兩種用法,第一種是比擬常規的,執行循環,然后每次都把控制的數加1,就可以讓while循環有退出的條件了.
第二種是用戶從鍵盤數據,然后把用戶輸入的文字輸出出來.
break #跳出所有循環
break n #跳出第n層f循環
continue #跳出當前循環
#!/bin/sh
sysout(){
echo "hello world"
}
sysout
定義一個沒有返回值的函數,然后挪用該函數
#!/bin/sh
test(){
aNum=3
anotherNum=5
return $(($aNum+$anotherNum))
}
test
result=$?
echo $result
定義一個有返回值的函數,調用該函數,輸出成果
#!/bin/sh
test(){
echo $1 #接收第一個參數
echo $2 #接收第二個參數
echo $3 #接收第三個參數
echo $# #接收到參數的個數
echo $* #接收到的所有參數
}
test aa bb cc
定義了一個必要傳遞參數的函數
$echo result > file #將結果寫入文件,結果不會在控制臺展示,而是在文件中,覆蓋寫
$echo result >> file #將結果寫入文件,結果不會在控制臺展示,而是在文件中,追加寫
echo input < file #獲取輸入流
#!/bin/bash
echo "-------Begin-------"
git add .
git commit -m $1
echo $1
git push origin master
echo "--------End--------"
以上就是我對shell知識的總結,歡迎大家點心,評論,一起討論~~
本文永遠更新鏈接地址:
維易PHP培訓學院每天發布《LINUX教學:讓你快速學會Shell腳本》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。