天天看點

shell程式設計 特殊變量--程序狀态變量

程序狀态變量

1、$$擷取目前shell的程序号(PID)

2、$!執行上一個指令的PID

3、$?擷取執行上一個指令的傳回值(0為成功,非零為失敗,這個很常用)

4、$_在此之前執行的指令或腳本的最後一個參數

1

2

3

4

5

6

7

8

9

10

11

12

<code>cat</code> <code>&gt; </code><code>test</code><code>$.sh</code>

<code>echo</code> <code>'$$='</code><code>$$</code>

<code>echo</code> <code>'$!='</code><code>$!</code>

<code>echo</code> <code>'$?='</code><code>$?</code>

<code>echo</code> <code>'$@='</code><code>$@</code>

<code>echo</code> <code>'$_='</code><code>$_</code>

<code>#輸出如下</code>

<code>sh </code><code>test</code><code>\$.sh 1 2 3</code>

<code>$$=2556</code>

<code>$!=</code>

<code>$?=0</code>

<code>$@=1 2 3</code>

$*和$@的差別

$*将所有的參數視為單個字元串,相當于“$1$2$3”

$@将每個參數視為單個的字元串,保留指令行中的任何空白字元

13

14

15

16

17

<code>set</code> <code>-- </code><code>'I am'</code> <code>jane lee</code>

<code>for</code> <code>i </code><code>in</code> <code>$*; </code><code>do</code> <code>echo</code> <code>$i; </code><code>done</code><code>;</code>

<code>I</code>

<code>am</code>

<code>jane</code>

<code>lee</code>

<code>for</code> <code>i </code><code>in</code> <code>$@; </code><code>do</code> <code>echo</code> <code>$i; </code><code>done</code><code>;</code>

<code>for</code> <code>i </code><code>in</code> <code>"$@"</code><code>; </code><code>do</code> <code>echo</code> <code>$i; </code><code>done</code><code>;</code>

<code>I am</code>

<code>for</code> <code>i </code><code>in</code> <code>"$*"</code><code>; </code><code>do</code> <code>echo</code> <code>$i; </code><code>done</code><code>;</code>

<code>I am jane lee</code>

本文轉自shayang8851CTO部落格,原文連結:http://blog.51cto.com/janephp/1297448,如需轉載請自行聯系原作者