shell腳本

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

#!/bin/bash#

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

#!/bin/bash                                   #從1加到100

i=1 s=0

while [ $i -le 100 ]  

do     s=$(($s+$i))     i=$(($i+1))  

done

echo "the sum is:$s"

wKioL1lLMhuTvbIbAAKCWAYhFw8656.png

wKiom1lLMhyj0bY3AAISw8QKNyo338.png

wKioL1lLMh3BYeVNAAH_WxD0_sE562.png

wKiom1lLMh7SjiTdAAJ96F_aNrM846.png

wKiom1lLMh-xgA79AAJW9vGH1Ow990.png

wKiom1lLMiCzL-WUAAJW4WGbU4k463.png



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章