1. Linux 腳本編寫基礎
程序必須以下面的行開始(必須放在文件的第一行):
#!/b#對變量賦值:
對變量的賦值
a="hello world"
# 輸出變量a的內容:
echo $a
num=2
echo "this is the $numpp"
僅僅打印"this is the "
num=2
echo "this is the ${num}nd"
這將打印: this is the 2ndpp
1、常用命令
read命令
作用: 接收鍵盤輸入
格式:read 選項 變量名
選項
-p 輸出提示信息
-t 指定等待時間(秒),默認會一直等待用戶輸入
-n 指定接收的字符數
-s 隱藏輸入的數據
read -p "please input your name" -t 10 name 將用戶輸入的值賦予name
echo命令
echo 字符串 輸出字符串或變量的值,默認輸出後會換行,且不會識別特殊字符
echo -n 字符串 輸出字符串或變量的值,不換行
echo -e 字符串 輸出字符串或變量的值,在遇到 特殊字符時需轉換,比如\n代表換行
符號
' ' 單引號 在單引號中所有特殊符號均無特殊含義
" " 雙引號 在雙引號中,除“$”“\”外其他特殊符號都無特殊含義
$( ) 括號中使用系統命令
$ 調用變量的值
\ 反斜槓 轉義符,轉義符的特殊字符無特殊含義
$# 代表命令行中參數的個數
$* 代表命令行中所有參數,把所有參數看成一個整體
$@ 代表命令行中所有參數,把每個參數區別對待
$? 代表最後一次執行的命令的返回狀態,返回變量值爲0代表執行成功,否則不成功
條件判斷
使用[ ]可以對條件進行測試,使用[[ ]]可以對多個條件進行判斷
1.按文件類型判斷
-e 判斷文件是否存在
-d 判斷文件是否存在,並且是否爲目錄
-f 判斷文件是否存在,並且是否爲普通文件
[-e /root/install.log]&&echo “yes”|| echo "no" 如果存在文件則輸出yes,否則輸出
2整數比較
整數1 -eq 整數2 判斷是否相等
-ne 判斷是否不等
-gt 判斷整數1是否大於整數2
-lt 判斷整數1是否小於整數2
-ge 判斷整數1是否大於等於整數2
-le 判斷整數1是否小於等於整數2
3字符串比較
-z 判斷字符串是否爲空
-n 判斷字符串是否不爲空
字符串1 == 字符串2 判斷字符串是否相等
字符串1 != 字符串2 判斷字符串是否不等
a="" [-z "$a"]&&echo "yes"||echo "no" b=1 c=2 [-z "$b"=="$c"]&&echo "yes"||echo "no"
if語句
if [ 條件判斷式 ];
then 程序
fi
判斷當前用戶是否爲root
#! /bin/bash test=$(env|grep USER |cut -d "=" -f 2) 給test賦值 if [ "$test" = "root" ]; 比較語句 then echo "current user is root" fi if雙分支語句 if [ 條件判斷式 ] then 程序1 else 程序2 fi 判斷輸入是否是一個目錄 #!/bin/bashread -t 30 -p "please input derectory:" dir 輸入一個目錄名稱 if [ -d "$dir" ]; 比較 then echo "input is a directory" else echo "input isnot a directory" fi 多分支if語句 [ 條件1 ]; 程序 [ 條件2 ]; 程序 ..... 程序fi
for語句
for 變量 in 值1 值2 值3.....
do 程序
done
#
s=0;
for((i=1;i<=100;i=i+1)) 從1加到100
do
s=$(($s+$i))
done
echo "the sum is:$s"
while 語句
while [ 條件判斷式 ]
do
程序
done
#從1加到100
i=1 s=0
while [ $i -le 100 ]
do s=$(($s+$i)) i=$(($i+1))
done
echo "the sum is:$s"