溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SHELL編程小程序的示例分析

發(fā)布時間:2021-12-18 09:27:21 來源:億速云 閱讀:340 作者:小新 欄目:云計算

這篇文章給大家分享的是有關(guān)SHELL編程小程序的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

shell腳本示例:(求1到100的和)

#vi  qiuhe.sh

#!/bin/sh                    # 符號#!用來告訴系統(tǒng)他后面的參數(shù)是用來執(zhí)行該文檔的程式

a=1                           #定義變量
sum=0
while [ $a -le 100 ]           #while循環(huán),其中-le的意思是小于或等于
do
((sum=sum+a))
((a=a+1))
done
echo $sum

編寫完wq保存退出。

#chmod  +x  qiuhe.sh  (添加可執(zhí)行權(quán)限)


幾種關(guān)系運算符附圖參考:

SHELL編程小程序的示例分析

具體執(zhí)行腳本時,可以使用如下兩種方法,附圖參考  
 

這個求和也可以通過一句話來實現(xiàn)

#echo |awk '{for (i=1;i<=100;i=i+1) a=a+i} { print a}'

二、SHELL中常見命令和流程控制

 1、在shell腳本中使用的常見命令

 常用命令語法及功能  
 
  echo "some text": 將文字內(nèi)容打印在屏幕上  
 
  ls: 文檔列表  
 
  wc –l filewc -w filewc -c file: 計算文檔行數(shù)計算文檔中的單詞數(shù)計算文檔中的字符數(shù)  
 
  cp sourcefile destfile: 文檔拷貝  
 
  mv oldname newname : 重命名文檔或移動文檔  
 
  rm file: 刪除文檔  
 
  grep 'pattern' file: 在文檔內(nèi)搜索字符串   比如:grep 'aaa' file.txt

        Sed是個基本的查找替換程式。  awk 用來從文本文檔中提取字段。具體使用可參見相關(guān)資料,在此不展開了。

2、SHELL的流程控制

         和其他高級程序設(shè)計語言一樣,Shell提供了用來控制程序執(zhí)行流程的命令,包括條件分支和循環(huán)結(jié)構(gòu),用戶可以用這些命令創(chuàng)建非常復(fù)雜的程序。

   if條件語句:Shell程序中的條件分支是通過if條件語句來實現(xiàn)的,其一般格式為:

if 條件命令串

then

條件為真時的命令串

else

條件為假時的命令串

fi

for循環(huán):for循環(huán)對一個變量的可能的值都執(zhí)行一個命令序列。賦給變量的幾個數(shù)值既可以在程序內(nèi)以數(shù)值列表的形式提供,也可以在程序以外以位置參數(shù)的形式提供。for循環(huán)的一般格式為:

for變量名    [in數(shù)值列表]

do

若干個命令行

done

變量名可以是用戶選擇的任何字串,如果變量名是var,則在in之后給出的數(shù)值將順序替換循環(huán)命令列表中的$var。如果省略了in,則變量var的取值將是位置參數(shù)。對變量的每一個可能的賦值都將執(zhí)行do和done之間的命令列表。

while和until循環(huán):while和until命令都是用命令的返回狀態(tài)值來控制循環(huán)的。While循環(huán)的一般格式為:

while

若干個命令行1

do

若干個命令行2

done

只要while的“若干個命令行1”中最后一個命令的返回狀態(tài)為真,while循環(huán)就繼續(xù)執(zhí)行do...done之間的“若干個命令行2”。

until命令是另一種循環(huán)結(jié)構(gòu),它和while命令相似,其格式如下:

until

若干個命令行1

do

若干個命令行2

done

until循環(huán)和while循環(huán)的區(qū)別在于:while循環(huán)在條件為真時繼續(xù)執(zhí)行循環(huán),而until則是在條件為假時繼續(xù)執(zhí)行循環(huán)。

三、SHELL程序的調(diào)試

  在編程過程中難免會出錯,有的時候,調(diào)試程序比編寫程序花費的時間還要多,shell程序同樣如此。

  shell程序的調(diào)試主要是利用bash命令解釋程序的選擇項。調(diào)用bash的形式是:

  bash(sh)  -選擇項 shell程序文件名

  幾個常用的選擇項是:

  -e:如果一個命令失敗就立即退出

  -n:讀入命令檢查語法是否有錯誤但是不執(zhí)行它們

  -u:置換時把未設(shè)置的變量看作出錯

  -v:讀入shell輸入行并把它們顯示出來

  -x:執(zhí)行命令時把命令和它們的參數(shù)顯示出來

  上面的所有選項也可以在shell程序內(nèi)部用“set -選擇項”的形式引用,而“set +選擇項”則將禁止該選擇項起作用。如果只想對程序的某一部分使用某些選擇項時,則可以將該部分用上面兩個語句包圍起來。

  1.未置變量退出和立即退出

  未置變量退出特性允許用戶對所有變量進行檢查,如果引用了一個未賦值的變量就終止shell程序的執(zhí)行。shell通常允許未置變量的使用,在這種情況下,變量的值為空。如果設(shè)置了未置變量退出選擇項,則一旦使用了未置變量就顯示錯誤信息,并終止程序的運行。未置變量退出選擇項為“-u”。

  當(dāng)shell運行時,若遇到不存在或不可執(zhí)行的命令、重定向失敗或命令非正常結(jié)束等情況時,如果未經(jīng)重新定向,該出錯信息會打印在終端屏幕上,而shell程序仍將繼續(xù)執(zhí)行。要想在錯誤發(fā)生時迫使shell程序立即結(jié)束,可以使用“-e”選項將shell程序的執(zhí)行立即終止。

  2.shell程序的跟蹤

  調(diào)試shell程序的主要方法是利用shell命令解釋程序的“-v”或“-x”選項來跟蹤程序的執(zhí)行?!?v”選擇項使shell在執(zhí)行程序的過程中,把它讀入的每一個命令行都顯示出來,而“-x”選擇項使shell在執(zhí)行程序的過程中把它執(zhí)行的每一個命令在行首用一個“+”加上命令名顯示出來。并把每一個變量和該變量所取的值也顯示出來。

  除了使用shell的“-v”和“-x”選擇項以外,還可以在shell程序內(nèi)部采取一些輔助調(diào)試的措施。例如,可以在shell程序的一些關(guān)鍵地方使用echo命令把必要的信息顯示出來,它的作用相當(dāng)于C語言中的printf語句,這樣就可以知道程序運行到什么地方及程序目前的狀態(tài)。

調(diào)試附圖參考:
SHELL編程小程序的示例分析

感謝各位的閱讀!關(guān)于“SHELL編程小程序的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI