Shell 變量和參數


1. shell 變量

your_name='world'

注意,變量名和等號之間不能有空格。同時,變量名的命名須遵循如下規則:

  • 命名只能使用英文字母,數字和下划線,首字符不能是數字。
  • 中間不能有空格,可以使用下划線。
  • 不能使用標點符號。
  • 不能使用 bash 里的關鍵字。

使用一個定義過的變量,只要在變量名前面加$即可:

your_name='world'
echo ${your_name}

變量名外面的花括號是可選的,加花括號是為了幫助解釋器識別變量的邊界。

使用 readonly 命令可以定義只讀變量,只讀變量的值不能被改變。

your_sex='male'
readonly your_sex

使用 unset 命令可以刪除變量。

unset your_name

運行 shell 時,會同時存在三種變量:

  • 局部變量  局部變量在腳本或命令中定義,僅在當前 shell 實例中有效,其他shell啟動的程序不能訪問局部變量。
  • 環境變量  所有的程序,包括 shell 啟動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行。必要的時候shell腳本也可以定義環境變量。
  • shell變量  shell 變量是由 shell 程序設置的特殊變量。shell 變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了 shell 的正常運行。

2. shell 字符串

your_name='world'
echo "${your_name}"    # world
echo '${your_name}'    # ${your_name},單引號里的任何字符都會原樣輸出
echo "hello,"${your_name}""    # hello,world
echo "hello,'${your_name}'"    # hello,world
echo 'hello,'${your_name}''    # hello,world
echo 'hello,"${your_name}"'    # hello,"${your_name}"

獲取字符串長度:

your_name='world'
echo ${#your_name}    # 5

獲取子字符串:

str="hello world."
echo ${str:0:7}    # hello w  從左邊第1個字符開始取7個字符
echo ${str:2}      # llo world.  從左邊第個3字符到最后
echo ${str:0-2}    # d.  從右邊第2個字符到最后

3. shell 傳遞參數

在執行 Shell 腳本時,向腳本傳遞參數,腳本內獲取參數的格式為:$n。$1 是腳本的第一個參數,以此類推。

其中 $0 是腳本的文件名:

#!/bin/bash
echo "$0"
echo "$1"
echo "$2"

$./test.sh Alice 18

幾個特殊的參數:

$#  傳遞給腳本參數的個數。

$@  以 "$1" "$2" … "$n" 的形式輸出所有參數。

$*   以 "$1 $2 … $n" 的形式輸出所有參數。

$$  腳本運行的當前進程的PID。

$?  顯示上一條命令的退出狀態或函數返回值。0表示沒有錯誤,其他任何值表明有錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM