1. 程式人生 > >Linux學習 - Bash變量

Linux學習 - Bash變量

pat ali linux學習 鍵盤 .sh 通用 寫入 host 命令執行

一、用戶自定義變量(本地名)

  用戶自定義變量只有在當前的shell中生效

  1 定義變量

    name="zheng huiwei"

    aa=123

  2 變量疊加

    aa="$aa"456

    aa=${aa}789

  3 變量調用

    echo $name

    echo $aa

  4 變量查看

    set

  5 變量刪除

    unset name

    unset aa

二、環境變量

  保存的是和系統操作環境相關的數據,

  環境變量會在當前shell和這個shell的所有子shell當中生效,如果把環境變量寫入相應的配置文件,那麽這個環境變量就會在所有的shell中生效。

  使用命令:bash可以建立子shell,使用命令:pstree確定進程數

  1 申明變量

    export 變量名=變量值

    或

    變量名=變量值

    export 變量名

  2 查詢變量

    env

  3 刪除變量

    unset 變量名

  4 系統常見環境變量

    (1)PATH:系統查找命令的路徑

       # echo $PATH

       /usr/lib/qt-3.3/bin: /usr/local/sbin/: usr/local/bin: /sbin: /bin: /usr/sbin: /usr/bin: /root/bin

       註:可以將自己的腳本位置添加到PATH系統查找命令路徑之下

         例如我的腳本在/home/zhw/sh/hello.sh中,使用變量疊加命令

         PATH="$PATH":/home/zhw/sh 將腳本位置添加到系統查找命令路徑下

    (2)PS1:定義系統提示符的變量

提示符 功能 格式
\d 顯示日期 “星期 月 日”
\h 顯示簡寫主機名 默認“localhost”
\t 顯示24小時制時間 “HH:MM:SS”
\T 顯示12小時制時間 “HH:MM:SS”
\A 顯示24小時制時間 “HH:MM”
\u 顯示當前用戶名
\w 顯示當前所在目錄的完整名稱
\W 顯示當前所在目錄的最後一個目錄
\# 顯示執行的是第幾個命令
\$ 提示符

root用戶提示“#”

普通用戶提示“$”

          例:

          技術分享圖片

三、位置參數變量

  用來向腳本當中傳遞參數或數據,變量名不能自定義,變量作用是固定的

位置參數變量 作用
$n

$0代表命令本身

$1-$9代表第1個到第9個輸入參數

${10}

$* $*把所有的參數看成一個整體
$@ $@把每個參數區分對待
$# 命令行中所有參數的個數

四、預定義變量

  在Bash中已經定義好的變量,變量名不能自定義,變量作用也是固定的

  1 預定義變量

預定義變量 作用
$?

最後一次執行的命令的返回狀態

返回0:上一條命令執行正確

返回非0:上一條命令執行錯誤

$$ 當前進程的進程號(PID)
$! 後臺最後一個進程的進程號(PID)

      例:$?

          技術分享圖片

      例:$$、$!

          技術分享圖片

          技術分享圖片

  2 鍵盤輸入接收

      read [選項] [變量名]

        -p [顯示信息]    在等待read輸入時,輸出提示信息

        -t [秒數]       指定read輸入等待時間

        -n [字符數]     指定read只接收n個字符輸入

        -s         隱藏輸入數據 

      例   

      技術分享圖片

      技術分享圖片

Linux學習 - Bash變量