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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【拔刀吧少年】之shell编程规范与变量

發(fā)布時(shí)間:2024/9/3 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【拔刀吧少年】之shell编程规范与变量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

shell編程規(guī)范與變量

  • 一、Shell腳本概述
    • 1、shell腳本的概念
    • 2、shell腳本應(yīng)用場(chǎng)景
    • 3、shell的作用——命令翻譯器,“翻譯官”(`又稱命令的組合`)
  • 二、用戶的登錄shell
  • 三、shell腳本的構(gòu)成
  • 四、shell腳本的執(zhí)行
  • 五、重定向
    • 1、重定向——交互式硬件設(shè)備
    • 2、重定向——重定向操作(用于自動(dòng)化腳本,輸出查證)
  • 六、Shell腳本變量
    • 1、變量的作用
    • 2、變量的分類
  • 七、自定義變量
    • 1、定義新變量
    • 2、查看變量的值
    • 3、賦值時(shí)使用引號(hào)
    • 4、read命令獲取輸入內(nèi)容
    • 5、變量作用范圍(export)
    • 6、整數(shù)變量的運(yùn)算
  • 八、環(huán)境變量
  • 九、只讀變量
  • 十、位置變量
  • 十一、預(yù)定義變量
  • 總結(jié)

一、Shell腳本概述

1、shell腳本的概念

將要執(zhí)行的命令按順序保存到一個(gè)文本文件
給該文件可執(zhí)行權(quán)限
可結(jié)合各種shell控制語(yǔ)句以完成更復(fù)雜的操作

2、shell腳本應(yīng)用場(chǎng)景

重復(fù)性操作
交互性任務(wù)
批量事務(wù)處理
服務(wù)運(yùn)行狀態(tài)監(jiān)控
定時(shí)任務(wù)執(zhí)行

3、shell的作用——命令翻譯器,“翻譯官”(又稱命令的組合)

介于系統(tǒng)內(nèi)核與用戶之間,負(fù)責(zé)解釋命令行

二、用戶的登錄shell

三、shell腳本的構(gòu)成

腳本申明(解釋器):若第一行為“#!/bin/bash” ,表示此行以下的代碼語(yǔ)句是通過(guò)/bin/bash程序來(lái)結(jié)實(shí)執(zhí)行,#!/bin/bash為默認(rèn)解釋器,還有其他類型的解釋器,比如#!/usr/bin/python、#!/usr/bin/expect。

注釋信息:以“#”開(kāi)頭的語(yǔ)句表示為注釋信息,被注釋的語(yǔ)句在運(yùn)行腳本時(shí)將不被執(zhí)行。

可執(zhí)行語(yǔ)句:比如echo命令,用于輸出“ ”之間的字符串。

四、shell腳本的執(zhí)行

方法一:指定路徑的命令,要求文件必須有執(zhí)行(x)權(quán)限

方法二:指定shell來(lái)解釋腳本,不要求文件必須有寫(x)的權(quán)限

①、sh腳本路徑

②、source腳本路徑

五、重定向

1、重定向——交互式硬件設(shè)備

2、重定向——重定向操作(用于自動(dòng)化腳本,輸出查證)



六、Shell腳本變量

1、變量的作用

用來(lái)存放系統(tǒng)和用戶需要使用的特定參數(shù)(值)

變量名:使用固定的名稱,由系統(tǒng)預(yù)設(shè)或用戶定義

變量值:能夠根據(jù)用戶設(shè)置、系統(tǒng)環(huán)境的變化而變化

2、變量的分類

自定義變量:由用戶自己定義、修改和使用

環(huán)境變量:由系統(tǒng)維護(hù),用于設(shè)置工作環(huán)境

只讀變量:用于變量值不允許被修改的情況

位置變量:通過(guò)命令行給腳本程序傳遞參數(shù)

預(yù)定義變量:bash中內(nèi)置的一類變量,不能直接修改

七、自定義變量

1、定義新變量


命名規(guī)則:以字母或下劃線開(kāi)頭,區(qū)分大小寫(建議大寫)

2、查看變量的值

3、賦值時(shí)使用引號(hào)




看cpu命令free -m

free -m | grep “Men:”

4、read命令獲取輸入內(nèi)容

①、方法一:

read -p “提示信息” 變量名(-s不顯示輸入信息,多用于密碼輸入)

echo $“變量名”


②、方法二:

echo -n “提示信息”

read 變量名

echo $變量名

5、變量作用范圍(export)

默認(rèn)情況下,新定義的變量只在當(dāng)前的Shell環(huán)境中有效,因此稱為局部變量。當(dāng)進(jìn)入子程序或新的子Shell環(huán)境時(shí),局部變量將無(wú)法再使用。

可以通過(guò)內(nèi)部命令export將指定的變量導(dǎo)出為全局變量,使用戶定義的變量在所有的子Shell環(huán)境中能夠繼續(xù)使用。

格式1:export 變量名

格式2:export 變量名=變量值

可以使用 pstree 命令查看Shell環(huán)境,輸入 bash 命令進(jìn)入子Shell環(huán)境,按Ctrl+D組合鍵或輸入 exit 命令退出子Shell環(huán)境。

6、整數(shù)變量的運(yùn)算

1.格式:expr 變量1 運(yùn)算符 變量2 (運(yùn)算符 變量3)

2.運(yùn)算符: + 加法、- 減法、、* 乘法、/ 除法、% 取余


常用的運(yùn)算表達(dá)式:

i=$(expr 10 * 3)

i=$((10 * 3))

i=$[10 * 3]

let i=10*3

i++ 相當(dāng)于 i=[[[i+1]

i-- 相當(dāng)于 i=[[[i-1]

i+=2 相當(dāng)于 i=[[[i+2]

bash不支持浮點(diǎn)運(yùn)算,如果需要進(jìn)行浮點(diǎn)運(yùn)算,需要借助bc, awk 處理,awk可保留小數(shù)點(diǎn)后6位

八、環(huán)境變量

使用 env 命令可以查看到當(dāng)前工作環(huán)境下的環(huán)境變量

變量USER表示用戶名稱,HOME表示用戶的宿主目錄,LANG表示語(yǔ)言和字符集,PWD表示當(dāng)前所在的工作目錄,變量PATH表示可執(zhí)行程序的默認(rèn)搜索路徑。

九、只讀變量

用于變量值不允許被修改的情況

十、位置變量

當(dāng)執(zhí)行命令行操作時(shí),第一個(gè)字段表示命令名或腳本程序名,其余的字符串參數(shù)按照從左到右的順序依次賦值給位置變量。

$n:n為數(shù)字,$0代表命令本身,1~9代表第一個(gè)到第九個(gè)參數(shù),十以上的參數(shù)需要使用大括號(hào)表示,比如第十個(gè)參數(shù)為 ${10}。

十一、預(yù)定義變量

?、*、?@:表示命令或腳本要處理的參數(shù)。

$*:把所有參數(shù)看成以空格分隔的一個(gè)字符串整體,代表"$1 $2 $3 $4"。

$@:把各個(gè)參數(shù)加上雙引號(hào)分隔成n份的參數(shù)列表,每個(gè)參數(shù)是獨(dú)立 的,代表"$1" “$2” “$3” “$4”。

$0:表示當(dāng)前執(zhí)行的腳本或命令的名稱。

$#:表示命令或腳本要處理的參數(shù)的個(gè)數(shù)。

$?:表示前一條命令或腳本執(zhí)行后的返回狀態(tài)碼,返回值為0表示執(zhí)行正確,返回任何非0值均表示執(zhí)行出現(xiàn)異常。


總結(jié)

shell重要的一點(diǎn)就是語(yǔ)法錯(cuò)誤,shell腳本是一行一行執(zhí)行,注意一個(gè)符號(hào)或者一個(gè)空格錯(cuò)了都執(zhí)行不了。

這里的我認(rèn)為的重點(diǎn)是腳本里的符號(hào),’ " ` 這三個(gè)的意思。還有幾個(gè)變量。很多小白剛開(kāi)始做的時(shí)候都會(huì)遇到輸入命令不啟動(dòng)。別著急,耐心點(diǎn)。

總結(jié)

以上是生活随笔為你收集整理的【拔刀吧少年】之shell编程规范与变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。