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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

shell脚本详解(一)——Shell编程规范与变量

發布時間:2024/2/28 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本详解(一)——Shell编程规范与变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

詳解Shell編程規范與變量

  • 一、Shell腳本概述
    • 1、shell腳本的概念
    • 2、shell腳本應用場景
    • 3、shell的作用——命令翻譯器,“翻譯官”
  • 二、用戶的登錄shell
  • 三、shell腳本的構成
  • 四、shell腳本的執行
    • 方法一:指定路徑的命令,要求文件必須有執行(x)權限
    • 方法二:指定shell來解釋腳本,不要求文件必須有寫(x)的權限
      • ①、sh腳本路徑
      • ②、source腳本路徑
  • 五、重定向
    • 1、重定向——交互式硬件設備
    • 2、重定向——重定向操作
  • 六、Shell腳本變量
    • 1、變量的作用
    • 2、變量的分類
  • 七、自定義變量
    • 1、定義新變量:
    • 2、查看變量的值:
    • 3、賦值時使用引號
    • 4、read命令獲取輸入內容
      • ①、方法一:
      • ②、方法二:
    • 5、變量作用范圍
    • 6、整數變量的運算
    • 7、浮點運算(需借助bc,awk處理)
      • ①、bc
      • ②、awk
  • 八、環境變量
  • 九、只讀變量
  • 十、位置變量
  • 十一、預定義變量

一、Shell腳本概述

1、shell腳本的概念

  • 將要執行的命令按順序保存到一個文本文件
  • 給該文件可執行權限
  • 可結合各種shell控制語句以完成更復雜的操作

2、shell腳本應用場景

  • 重復性操作
  • 交互性任務
  • 批量事務處理
  • 服務運行狀態監控
  • 定時任務執行

3、shell的作用——命令翻譯器,“翻譯官”

  • 介于系統內核與用戶之間,負責解釋命令行

二、用戶的登錄shell

三、shell腳本的構成

  • 腳本申明(解釋器):若第一行為“#!/bin/bash” ,表示此行一下的代碼語句是通過/bin/bash程序來結實執行,#!/bin/bash為默認解釋器,還有其他類型的解釋器,比如#!/usr/bin/python、#!/usr/bin/expect。
  • 注釋信息:以“#”開頭的語句表示為注釋信息,被注釋的語句在運行腳本時將不被執行。
  • 可執行語句:比如echo命令,用于輸出“ ”之間的字符串。

四、shell腳本的執行

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

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

①、sh腳本路徑

②、source腳本路徑

五、重定向

1、重定向——交互式硬件設備

類型設備文件文件描述編號默認設備
標準輸入/dev/stdin0鍵盤
標準輸出/dev/stdout1顯示器
標準錯誤輸出/dev/stderr2顯示器

2、重定向——重定向操作

類型操作符用途
重定向輸入<從指定的文件讀取數據
重定向輸出>將標準輸出結果 保存 到指定的文件,并且覆蓋原有內容
>>將標準輸出結果 追加 到指定的文件的尾部,不覆蓋原有內容
標準錯誤輸出2>將錯誤信息 保存 到指定的文件,并且覆蓋原有內容
2>>將錯誤信息 追加 到指定的文件的尾部,不覆蓋原有內容
混合輸出&>將標準輸出、標準錯誤保存到同一文件中
2>&1將標準錯誤輸出重定向到標準輸出

六、Shell腳本變量

1、變量的作用

  • 用來存放系統和用戶需要使用的特定參數(值)
  • 變量名:使用固定的名稱,由系統預設或用戶定義
  • 變量值:能夠根據用戶設置、系統環境的變化而變化

2、變量的分類

  • 自定義變量:由用戶自己定義、修改和使用
  • 環境變量:由系統維護,用于設置工作環境
  • 只讀變量:用于變量值不允許被修改的情況
  • 位置變量:通過命令行給腳本程序傳遞參數
  • 預定義變量:bash中內置的一類變量,不能直接修改

七、自定義變量

1、定義新變量:

  • 命名規則:以字母或下劃線開頭,區分大小寫(建議大寫)

2、查看變量的值:

3、賦值時使用引號

雙引號允許通過$符號引用其他變量值
單引號禁止引用其他變量值, $視為普通字符
反撇號命令替換,提取命令執行后的輸出結果,``和$(…)作用相同

4、read命令獲取輸入內容

①、方法一:

read -p "提示信息" 變量名 echo $"變量名"

②、方法二:

echo -n "提示信息" read 變量名 echo $變量名

5、變量作用范圍

  • 默認情況下,新定義的變量只在當前的Shell環境中有效,因此稱為局部變量。當進入子程序或新的子Shell環境時,局部變量將無法再使用。
  • 可以通過內部命令export將指定的變量導出為全局變量,使用戶定義的變量在所有的子Shell環境中能夠繼續使用。
    • 格式1:export 變量名
    • 格式2:export 變量名=變量值
  • 可以使用 pstree 命令查看Shell環境,輸入 bash 命令進入子Shell環境,按Ctrl+D組合鍵或輸入 exit 命令退出子Shell環境。

6、整數變量的運算

格式:expr 變量1 運算符 變量2 (運算符 變量3)運算符: + 加法、- 減法、* 乘法、/ 除法、% 取余 常用的運算表達式: i=$(expr 10 \* 3) i=$((10 * 3)) i=$[10 * 3] let i=10*3i++ 相當于 i=$[$i+1] i-- 相當于 i=$[$i-1] i+=2 相當于 i=$[$i+2]

7、浮點運算(需借助bc,awk處理)

①、bc


②、awk

八、環境變量

  • 使用 env 命令可以查看到當前工作環境下的環境變量
  • 變量USER表示用戶名稱,HOME表示用戶的宿主目錄,LANG表示語言和字符集,PWD表示當前所在的工作目錄,變量PATH表示可執行程序的默認搜索路徑。

九、只讀變量

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

十、位置變量

  • 當執行命令行操作時,第一個字段表示命令名或腳本程序名,其余的字符串參數按照從左到右的順序依次賦值給位置變量。
  • $n:n為數字,$0代表命令本身,1~9代表第一個到第九個參數,十以上的參數需要使用大括號表示,比如第十個參數為 ${10}。


十一、預定義變量

$*、$@:表示命令或腳本要處理的參數。$*:把所有參數看成以空格分隔的一個字符串整體,代表"$1 $2 $3 $4"。$@:把各個參數加上雙引號分隔成n份的參數列表,每個參數是獨立 的,代表"$1" "$2" "$3" "$4"。$0:表示當前執行的腳本或命令的名稱。$#:表示命令或腳本要處理的參數的個數。$?:表示前一條命令或腳本執行后的返回狀態碼,返回值為0表示執行正確,返回任何非0值均表示執行出現異常。

總結

以上是生活随笔為你收集整理的shell脚本详解(一)——Shell编程规范与变量的全部內容,希望文章能夠幫你解決所遇到的問題。

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