位置變數引數

2021-06-01 13:10:52 字數 1158 閱讀 8373

1、指令碼中使用位置引數 

#!/bin/bash

#param

echo "this is script name    : $0"

echo "this is the first name : $1"

echo "this is the second name: $2"

echo "this is the three name : $3"

這裡傳遞3個引數,$0是指令碼名自身;

注意:$0返回的是當前目錄路徑,如下

#!/bin/sh

#param2

echo "hello world this is $0 calling"

test@linux_ngin:~/script> ./param2

hello world this is./param2calling               ------當前目錄路徑

#!/bin/sh

#param2

echo "hello world this is `basename $0` calling"        ------使用basename獲取指令碼名稱

test@linux_ngin:~/script> ./param2

hello world this isparam2calling

2、向系統命令傳遞引數

#!/bin/sh

#findfile

find / -name $1 -print   -------查詢檔案名

#!/bin/sh

#who_is

grep $1 /etc/passwd | awk -f: ''  ---------查詢當前使用者名稱並輸出其home目錄

3、特定變數引數

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

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

$$    指令碼執行的當前程序id號

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

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

$-     顯示shell當前選項,與set命令相同

$?    顯示最後命令的退出狀態,0為沒有錯誤,其他任何值表明有錯誤

shell 位置引數變數

n 0代表命令本身 1 9 代表第乙個到第九個引數 第十個引數 eg bin bash num1 1 num2 2 sum 1 2 echo sum 命令執行中的所有引數 乙個整體 執行中所有引數 單個引數 執行中的引數個數 bin bash for i in do 所有引數當成乙個整體迴圈一次 1...

關於Shell中的位置引數變數

位置引數是一種在呼叫shell程式的命令列中按照各自的位置決定的變數,是在程式名之後輸入的引數,它們分別標識了使用者輸入的整個命令列中以空格分隔開的字串,其中,1標識第乙個位置的引數,2標識第二個,以此類推。其中,0是乙個特殊的變數,它的內容是當前這個shell程式的檔名,所以,它不是乙個位置引數,...

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

位置引數 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 e...