天天看點

shell 中 的位置變量

  shell 中常見的位置參數如下

$# : 用來統計參數的個數

$@ :會将指令行的所有的參數當做同一個字元串中的多個獨立單詞

$* :會将指令行的參數當做一個參數來儲存

舉例說明

 參數 $# 

1

2

3

4

5

6

<code>cat</code> <code>test8.sh </code>

<code>#!/bin/bash</code>

<code>## getting the unmber of parameters </code>

<code>#</code>

<code>echo</code> <code>there are $</code><code># parameters supplied</code>

./test8.sh 1 2 3 

there are 3 parameters supplied

參數的簡單運算,當輸入正确的參數時進行運算、錯誤的時候輸入腳本用法

7

8

9

10

11

12

<code>## testing parameters</code>

<code>if</code> <code>[ $</code><code># -ne 2  ]</code>

<code>then</code> 

<code> </code><code>echo</code> <code>Usage: test9.sh a b</code>

<code>else</code> 

<code>total=$[ $1 + $2  ]</code>

<code>echo</code> <code>The total is $total</code>

<code>#echo </code>

<code>fi</code>

./test9.sh 8 56

The total is 64

./test9.sh 81  

Usage: test9.sh a b

參數$@ 和$#

<code>#testing $* and $@</code>

<code>echo</code>

<code>#echo "Using the $* method: $*"</code>

<code>echo</code> <code>"Using the \$* method: $*"</code>

<code>echo</code> 

<code>echo</code> <code>"Using the \$@ method: $@"</code>

./test11.sh aa bb cc 

Using the $* method: aa bb cc

Using the $@ method: aa bb cc

上述例子表面上$@ 和$# 的用法是一樣的,下面的例子将會加以區分

13

14

15

16

17

18

19

20

<code># testing $* and $@</code>

<code>count=1</code>

<code>for</code> <code>param </code><code>in</code> <code>"$*"</code>

<code>do</code> 

<code> </code><code>echo</code> <code>"\$* parameter #$count = $param"</code>

<code> </code><code>count=$[ $count + 1 ]</code>

<code>done</code>

<code>echo</code> <code>"-------------------------------------"</code>

<code>for</code> <code>param </code><code>in</code> <code>"$@"</code>

<code> </code><code>echo</code> <code>"\$@ parameter #$count = $param"</code>

./test12.sh aa bb cc dd

$* parameter #1 = aa bb cc dd

-------------------------------------

$@ parameter #2 = aa

$@ parameter #3 = bb

$@ parameter #4 = cc

$@ parameter #5 = dd

本文轉自 水滴石川1 51CTO部落格,原文連結:http://blog.51cto.com/sdsca/1903992,如需轉載請自行聯系原作者