shell腳本語言學習筆記-3

定義變量:
變量名命名規則與其他語言相似,但注意!變量名與=之間不能有空格

variableName="name"
myURL="http://www.example.com"
myNum="100"

使用變量:

 your_name="mozhiyan"
 echo $your_name 
 echo ${your_name} #加花括弧用來識別變量的邊界

變量可被二次定義,替換第一次的內容
但是如果將該變量定義成只讀的話,就不能被二次修改了。

readonly your_name

刪除變量:

#!/bin/bash
read your_name
unset your_name
echo "i am ${your_name} !"

運行以上腳本將不會輸出name。
這裏寫圖片描述
變量的類型:局部變量–僅在當前shell實例中有效
環境變量–shell可訪問可定義
shell變量–有shell程序設置的特殊變量,shell變量中一部分是環境變量一部分是局部變量

特殊變量:

    #!/bin/bash
    echo "File Name: $0"#$0表示當前腳本的文件名
    echo "First Parameter : $1"#$n 傳遞給腳本或函數的參數
    echo "First Parameter : $2"
    echo "Quoted Values: $@"#傳遞給腳本或函數的所有參數
    echo "Quoted Values: $*"#傳遞給腳本或函數的所有參數
    echo "Total Number of Parameters : $#"#傳遞給腳本或函數的參數個數

$$ 當前Shell進程ID。對於 Shell 腳本,就是這些腳本所在的進程ID即PID的值。
$? 可以獲取上一個命令的退出狀態。
所謂退出狀態,就是上一個命令執行後的返回結果。
一般情況下,成功返回0,失敗返回1.
也可用於獲得函數返回值。

    #!/bin/bash
    funWithReturn(){
    name="yaorong"
        return $name
    }
    funWithReturn
    # Capture value returnd by last command
    ret=$?#獲取上面函數的返回值
    echo "The sum of two numbers is $ret !"

$* 和 $@ 的區別

#!/bin/bash
echo "\$*=" $*
echo "\"\$*\"=" "$*"
echo "\$@=" $@
echo "\"\$@\"=" "$@"

上面腳本輸出結果是一樣的。
這裏寫圖片描述
但逐個輸出的話帶引號的結果不一樣。

#!/bin/bash
echo "print each param from \$*"
for var in $*
do
    echo "$var"
done
echo "print each param from \$@"
for var in $@
do
    echo "$var"
done
echo "print each param from \"\$*\""
for var in "$*"
do
    echo "$var"
done
echo "print each param from \"\$@\""
for var in "$@"
do
    echo "$var"
done

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章