shell語法(位置引數和特殊變數)

2021-08-21 19:18:01 字數 1384 閱讀 8229

位置引數

$0相當c的main函式argv[0]

$1、$2

位置引數,相當於argv[1]、argv[2]

$#相當於 argc -1

$@表示引數列表

$?上一條命令的退出碼

$$當前shell的程序號

#!/bin/bash

echo

"\$0 -> $0"

echo

"\$1 -> $1"

echo

"\$2 -> $2"

echo

"\$3 -> $3"

echo

"\$# -> $#"

echo

"\$@ -> $@"

echo

"\$? -> $?"

echo

"\$$ -> $$"

#執行[yexi@yexi 桌面]$ ./hh.sh a b c #後面跟a b c 3個引數

$0 -> ./hh.sh

$1 -> a

$2 -> b

$3 -> c

$# -> 3

$@ -> a b c

$? -> 0

$$ -> 17204

位置引數可以使用 shift 命令左移。

shift 2表示左移兩個,原來的$3變成$1,原來的$1、$2丟棄

#!/bin/bash

shift 2

echo

"\$0 -> $0"

echo

"\$1 -> $1"

echo

"\$2 -> $2"

echo

"\$3 -> $3"

echo

"\$# -> $#"

echo

"\$@ -> $@"

echo

"\$? -> $?"

echo

"\$$ -> $$"

#執行[yexi@yexi 桌面]$ ./hh.sh a b c

$0 -> ./hh.sh

$1 -> c

$2 ->

$3 ->

$# -> 1

$@ -> c

$? -> 0

$$ -> 17234

遍歷命令列引數

#方法1

for i in

$@do

echo

$idone

#方法2

while [ $#

-ne0 ]

doecho

$i shift 1

done

shell的位置引數和特殊變數

shell中有很多自動複製的變數 常用的位置引數和特殊變數有 0 相當於c語言main函式的argv 0 1 2 3.位置引數,相當於argv 1 argv 2 argv 3 相當於argv 1 表示引數列表 可以用做for的遍歷 表示引數列表 上一條命令的exit status 0為真 非0為假 ...

學習筆記 shell中位置引數及特殊引數

0,1,2,等等.位置引數,從命令列傳遞給指令碼,或者是傳遞給函式.或者賦職給乙個變數.0表示當前執行的程序名,script 本身的名字,或者在正規表示式中表示整行輸出 命令列或者是位置引數的個數.所有的位置引數,被作為乙個單詞.注意 必須被 引用.與 同義,但是每個引數都是乙個獨立的 引用字串,這...

Shell基礎 位置引數

位置引數是用一位或多位數字 除了0 表示的引數,位置引數n可以引用為 或者當n由單個數字組成時,引用為 n 位置引數是在呼叫shell時從shell引數中分配的 bash s a b c echo 1 2 3a b c cat script echo 1 2 3 bash script a b c ...