shell引數傳遞

2021-05-09 11:35:13 字數 1308 閱讀 7120

1.

位置變數引數即可傳入到指令碼的引數,最多可以訪問

9個,比如

./***.sh a b c d 其中

$0 是指令碼名字

$1 是第乙個引數

a以此類推

2. 特殊參量 $#

傳遞到指令碼的引數個數 $*

以乙個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,可以超過9個

$$指令碼執行的當前id

$!後台執行的最後乙個程序的程序id

$@與$#相同,但是使用時加引號,並在引號中返回每個引數 $-

顯示shell

使用的當前選型,

與set

命令功能相同 $?

顯示最後命令的退出狀態

1.向指令碼傳入引數

如果想輸入更多的引數(超過

9個)可以使用

shift 命令

作用:使引數位置向左偏移一位。

例子:#!/bin/sh

loop=0

while[ $# -ne 0 ]

doecho $#

echo $1

shift

done

2.另一種經典的方式如下.

getopts option_string variable

一般形式為:

while getopts abc: option

docase $option in a)

…… ;;b)………

;;c)

value=$optarg

………;;

/?)………

;;esac

………….

done

如果選項串前不加:則系統會給出錯誤提示,同時也會到/?處,如果想遮蔽掉系統提示則在選項串前加冒號,例如 :abc: 

expr用法

計算:expr 10 + 20

顯示30

增量計數:一般用在迴圈裡。

loop=`expr $loop + 1`

數值測試。如果不是整數,則返回錯誤。

expr rr + 1

其也可以返回自身的退出狀態,但是成功返回1.

測試兩個字串是否相等:

value=hello

expr $value = 「hello」

1echo $?

0模式匹配。通過指定冒號

選項計算字串中字元數

.*表示任何字元重複

0次或多次

value=accounts.doc

expr $value : october 8, 『.*』

12

Shell 傳遞引數

在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n代表一 個數字,1為執行 指令碼的第 乙個引數 2為執 行指令碼的 第二個參 數,以此 類推 例項以下 例項我們 向指令碼傳 遞三個參 數,並分 別輸出,其中0 為執行的檔名 bin bash echo shell 傳遞...

Shell 傳遞引數

shell 傳遞引數 我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 例項 以下例項我們向指令碼傳遞三個引數,並分別輸出,其中 0為執行的檔名 bin bash author...

Shell 傳遞引數

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 例項 以下例項我們向指令碼傳遞三個引數,並分別輸出,其中 0 為執行的檔名 bin bash author 菜鳥教程 url ...