1. 程式人生 > 其它 >Shell變數(4)- 位置引數變數

Shell變數(4)- 位置引數變數

作用

往shell腳本里面傳遞引數

位置引數變數 作用
$n

n 為數字,$0 代表命令本身,$1-$9 代表第一到第九個引數,十以上的引數需要用大括號包含,如 ${10}

$*

這個變數代表命令列中所有的引數,$* 把所有的引數看成一個整體

$@

這個變數也代表命令列中所有的引數,不過 $@ 把每個引數區分對待

$#

這個變數代表命令列中所有引數的個數

例子1

#!/bin/bash
num1=$1
num2=$2
sum=$(($num1+num2))
echo $sum

備註:因為Linux引數都是字元型,所有兩個引數相加得加$((引數1+引數2))

例子2

#!/bin/bash
echo "\$* 輸入的引數是:$*"
echo "\$@ 輸入的引數是:$@"
echo "\$# 總共輸入的引數:$#"

例子3-1

作用:$* 與 $@ 的區別,$* 與 $@放在雙引號“”

程式碼:

#!/bin/bash
for i in "$*"
do
echo "\$* 引數是:$*"
done

for i in "$@"
do
echo "\$@ 引數是:$@"
done

例子3-2

作用:$* 與 $@ 的區別,$* 與 $@不放在雙引號“”

程式碼:

#!/bin/bash
for i in $*
do
echo "\$* 引數是:$*"
done

for i in $@
do
echo "\$@ 引數是:$@"
done

總結:發現$* 與 $@在shell指令碼中,不用雙引號和加雙引號時候區別的,實際工作中運用要注意!!!