日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell 脚本编写使用

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell 脚本编写使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一、什么是shell 腳本
  • 二、shell 腳本寫法
  • 三、shell 腳本語法
    • 1、第一個 shell 腳本
    • 2、read命令
    • 3、數值計算
    • 4、test命令
    • 5、中括號判斷符
    • 6、默認變量
    • 7、條件判斷
    • 8、函數
    • 9、循環

一、什么是shell 腳本

終端中輸入一系列命令完成一些操作,但是我們一條一條輸入命令,這樣就會很麻煩,shell腳本可以將很多條命令放到一個文件里面,然后直接運行。

shell 腳本類似 windows 的批處理文件,shell 腳本就是將連續執行的命令寫成一個文件。

shell 腳本提供數組、循環、條件判斷等功能。shell 腳本一般是 Linux 運維、測試、系統管理員需要掌握的

二、shell 腳本寫法

shell 腳本是個純文本文件,命令從上而下,一行一行地開始執行。
shell 腳本拓展名為.sh。shell 腳本第一行一定要為

#!/bin/bash

三、shell 腳本語法

1、第一個 shell 腳本

我們在終端輸入:

使用 shell 腳本:

#!/bin/bash echo hello world!

給shell腳本可運行權限:

chmod 777 first.sh 或者 chmod +x first.sh

2、read命令

腳本:

#!/bin/bash echo "please input name and your age:" read name age #讀取鍵盤輸入字符串,賦值給變量 name 和 age echo "your name:" $name ",your age: $age" # shell 腳本輸出變量:$變量名

執行結果:

腳本(-p提示符):

#!/bin/bash read -p "please input your name and your age" name age #-p 后面跟提示信息,即在輸入前打印提示信息 echo "your name: $name,your age $age"

執行結果:

3、數值計算

shell 僅支持整型,數值計算使用$((表達式)),示例:

#!/bin/bash read -p "please input operand and number: " operand number echo "$operand + $number = $(($operand+$number))" echo "$operand - $number = $(($operand - $number))" echo "$operand * $number = $(($operand * $number))" divided=$(($operand/$number)) #賦值等號間不能有空格! echo "$operand / $number = $divided"

執行結果:

4、test命令

test命令用于查看文件是否存在、權限等信息,可以進行數值、字符和文件三方面的測試。

cmd1 && cmd2 #當 cmd1 執行完畢且正確,那么 cmd2 執行,當 cmd1 執行完畢且錯誤,那么 cmd2 不執行cmd1 || cmd2 #當 cmd1 執行完畢且正確,那么 cmd2 不執行,當 cmd1 執行完畢且錯誤,那么 cmd2 執行

字符串相等測試:

#!/bin/bash read -p "please input first string: " firstStr read -p "please input second string: " secondStr test $firstStr = $secondStr && echo "The two strings are the same" || echo "The two strings are not the same" # test str1 = str2 :兩個字符串相等則為真

執行結果:

文件存在測試

#!/bin/bash read -p "please input file name: " filename test -e $filename && echo "$filename exist" || echo "$filename non-existence" # test -e :如果文件存在則為真

執行結果:

5、中括號判斷符

字符串判斷:

#!/bin/bash read -p "please input first string: " firstStr read -p "please input second string: " secondStr [ "$firstStr" == "$secondStr" ] && echo "The two strings are the same" || echo "The two strings are not the same" # 中括號兩端內測要加空格,內容建議加 "",否則有空格時會出現參數過多 [ "$firstStr" != "$secondStr" ] && echo "The two strings are not the same" || echo "The two strings are the same" [ "$firstStr" = "$secondStr" ] && echo "The two strings are the same" || echo "The two strings are not the same" echo firstStr: $firstStr echo secondStr: $secondStr

執行結果:

6、默認變量

$0 ~ $n,表示 shell 腳本的執行參數,包括 shell 腳本執行命令本身,shell 腳本執行命令本身為$0。

$#表示最后一個參數的標號。

$@表示除$0外的所有參數。

很像main函數的argc、argv兩個參數。

示例:

#!/bin/bash echo "The zero parameter :"$0 echo "The first parameter :"$1 echo "The second parameter:"$2 echo "The label of the last parameter:"$# echo "All parameters :"$@

執行結果:

7、條件判斷

shell 腳本支持條件判斷,雖然可以通過&&和||來實現簡單的條件判斷,但是稍微復雜一點的場景就不適合了。shell 腳本提供了if then條件判斷語句:

if 條件判斷;then# 判斷成立后要執行的語句 fi # 結束語句--------------------------------------------------------------------if 條件判斷; then# 條件判斷后成立要執行的語句 else# 條件判斷后不成立要執行的語句 fi--------------------------------------------------------------------if 條件判斷; then# 條件判斷后成立要執行的語句 elif 條件判斷;then # 此語句可多次添加# 條件判斷后成立要執行的語句 else# 條件判斷后不成立要執行的語句 fi--------------------------------------------------------------------case $變量 in # 與 C語言 switch case 相似 "第一個變量內容")# 程序段;; # 表示第一個程序塊結束 "第二個變量內容")# 程序段;; # 表示第二個程序塊結束 "第n個變量內容")# 程序段;; # 表示第 n個程序塊結束 *) # 類似 C語言 switch case的 default# 程序段;; esac

例一:

#!/bin/bashread -p "please input(Y/N):" valueif [ "$value" == "Y" ] || [ "$value" == "y" ]; thenecho "your input is Y"exit 0 fiif [ "$value" == "N" ] || [ "$value" == "n" ]; thenecho "your input is N"exit 0 fi

結果:


例二:

#!/bin/bashcase $1 in"a")echo "param is :a";;"b")echo "param is :b";;*)#這里通配符不能加上引號 加上就代表字符*了echo "can't identify";; esac

結果:

8、函數

function fname(){ # function 可寫可不寫# 函數代碼段 }fname # 函數調用fname param1 param2 # 函數傳參

函數傳參用法示例:

#!/bin/bash fun1(){echo "$0"echo "param1:$1"echo "param2:$2"echo "$#"echo "$@" }fun1 lcx1 lcx2 #函數調用和傳參

執行結果:


可以看出,$n $# $@表示函數相應傳參值,$0仍然表示 shell 腳本第0個參數。

9、循環

while 條件 # 條件狀態為判斷式,條件成立時循環,直到條件不成立 do # 循環開始# 循環代碼段 done--------------------------------------------------------------------until 條件 # 條件狀態為判斷式,條件不成立時循環,直到條件成立 do # 循環開始# 循環代碼段 done--------------------------------------------------------------------for var in con1 con2 con3 ...... do# 循環代碼段 done # 變量 var 循環變化,第一次循環等于 con1,第二次循環等于 con2,以此類推--------------------------------------------------------------------for((初始值;限制值;執行步長)) do# 循環代碼段 done # 用法類似于 C語言 for循環

while 循環示例:


for 循環示例1:

#!/bin/bash for name in lcx1 lcx2 lcx3 doecho "name = $name" done

執行結果(for 循環了三次):

for 循環示例2:

#!/bin/bash for((count=0;count<=10;count++)) doecho "$count" done

執行結果:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的shell 脚本编写使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。