shell變量

種類

  • 用戶自定義變量
  • 環境變量 保存和系統操作環境相關的的數據 //建議大寫,便于區分
  • 位置變量 腳本當中傳遞參數或數據,變量名不能自定義,變量作用固定
  • 預定義變量 bash中預定義好的變量,變量名不能自定義,變量作用也是固定

用戶自定義變量 -本地變量,用戶任意設置,只在當前的shell生效

  • 調用 echo $name
  • 查看 set 查看所有
  • 刪除 unset $name

環境變量 - 會在當前shell 和子shell 生效,寫入配置文件,shell打開新終端,會在所有shell生效

  • 聲明 export 變量名 = 變量值
  • 聲明已有變量 export 變量名
  • 查看 env
  • 刪除 unset 變量名

位置變量

  • $n n為數字,$0代表命令本身,$1-$9代表第一到第九個參數,十個以上的參數用大括號包含如,${10}。
  • $* 代表命令中的所有參數,$*把所有的參數看成一個整體
  • $@ 代表命令中的所有參數,不過是把參數看成一個個個體對待
  • $# 代表命令行中的所有參數的個數

腳本一

#!/bin/bash

echo $0
echo $1
echo $2

輸出結果如下 -- 運行腳本,chmod 755 賦予運行權限


腳本二

#!/bin/bash

sum=$(($1+$2))
echo "sum is $sum"

輸出結果


腳本三

#!/bin/bash

echo $#  #輸出參數個數

for i in "$*" # 輸出整體
        do
                echo "the prarm is $i"
        done

for y in "$@" #一個個輸出
        do
                echo "the param is $y"
        done

輸出結果


預定義變量

  • $? 最后一次執行的命令的返回狀態,如果這個變量的值為0,證明上一個命令正確執行;如果這個變量的值為非0,則上個命令未正確執行
  • $$ 當前進程的進程號
  • $! 后臺運行的最后一個進程的進程號pid

接受鍵盤輸入

  • read [選項] [變量名]
  • -p "提示信息 " 在等待read輸入時,顯示提示信息
  • -t 秒數 read 命令會一直等待用戶輸入,使用此選項可以指定等待時間
  • -n 字符數 read只接受指定字符數就會執行
  • -s 隱藏輸入的數據,用于機密信息的輸入
#!/bin/bash

read -t 30 -p "input something:" name
echo $name

運算符

declare 聲明變量的類型

  • declare +/- [選項] 變量名
    • 給變量設定類型屬性
    • 給變量取消類型屬性
  • -i 將變量聲明為整形
  • -x 將變量聲明為環境變量
  • -p 顯示指定變量的被聲明類型

expr 加運算公式

$((運算式)) 或$[運算式]

變量測試與替換

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文轉載自Hello,Barry的shell變量詳解1 shell變量基礎shell變量是一種很“弱”的變量,默認...
    hchencoder閱讀 367評論 0 2
  • bash中,所有變量的值默認均為字符串。 1. 變量操作 調用變量 查看變量(所有類型) 刪除變量 2. 變量分類...
    yuanzicheng閱讀 746評論 0 49
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,228評論 2 33
  • 1.Shell定義變量 Shell定義一個變量不用聲明,但是要注意的幾點 :1. 首個字符必為字母。 2. 中間不...
    spfanlost閱讀 234評論 0 0
  • 前言 谷歌剛剛發布了Android O技術預覽版,為了提升續航和減少耗電,Android進一步限制了后臺服務的運行...
    客家小羅閱讀 7,270評論 1 14