當前位置:編程學習大全網 - 編程語言 - shell指令碼中的$*,$@和$#是什麽意思?

shell指令碼中的$*,$@和$#是什麽意思?

shell指令碼中的$*,$@和$#是什麽意思?

我沒用過$@,但是可以自己寫個指令碼測試下。

先介紹下我知道的,如下:

位置變數 :$0,$1,$2,$3,$4,$5,$6,$7,$8,$9 $0顯示執行的指令碼,$1...顯示位置引數的值

預定義變數:

$# 表示位置引數的數量

$* 表示所有位置引數的內容

$? 表示命令執行後返回的狀態 (執行成功 返回0 執行不成功 返回非0)

$$ 表示當前程序的程序號 希望開啟壹個程序後不再開啟另壹個(/proc/<PID>)

$! 表示後臺執行的最後壹個程序號

$0 表示當前的程序名

測試指令碼如下:(位置變數只輸出到$3)

[root@XP-24-35 script]#vim a.sh

#!/bin/bash

echo '$0 ==> ' $0

echo '$1 ==> ' $1

echo '$2 ==> ' $2

echo '$3 ==> ' $3

echo '$$ ==> ' $$

echo '$* ==> ' $*

echo '$@ ==> ' $@

echo '$# ==> ' $#

echo '$? ==> ' $?

執行結果1(輸入小於三個位置引數a,b)

[root@XP-24-35 script]# ./a.sh a b

$0 ==> ./a.sh

$1 ==> a

$2 ==> b

$3 ==>

$$ ==> 4847

$* ==> a b

$@ ==> a b

$# ==> 2

$? ==> 0

執行結果2(剛好輸入三個位置引數)

[root@XP-24-35 script]# ./a.sh a b c

$0 ==> ./a.sh

$1 ==> a

$2 ==> b

$3 ==> c

$$ ==> 4844

$* ==> a b c

$@ ==> a b c

$# ==> 3

$? ==> 0

執行結果3(輸入大於3個位置引數)

[root@XP-24-35 script]# ./a.sh a b c d e f

$0 ==> ./a.sh

$1 ==> a

$2 ==> b

$3 ==> c

$$ ==> 4852

$* ==> a b c d e f

$@ ==> a b c d e f

$# ==> 6

$? ==> 0

實驗結果說明壹切,忘采納,謝謝。

shell指令碼中的$是什麽意思

$ 錢號(dollar sign)

變數替換(Variable Substitution)的代表符號。

vrs=123

echo $vrs

123

shell指令碼中的“$<”是什麽意思?

暫時沒有發現shell中這樣的環境變數

shell的系統環境變數包括以下

$n $1 表示第壹個引數,$2 表示第二個引數 ...

$# 命令列引數的個數

$0 當前程式的名稱

$? 前壹個命令或函式的返回碼

$* 以"引數1 引數2 ... " 形式儲存所有引數

$@ 以"引數1" "引數2" ... 形式儲存所有引數

$$ 本程式的(程序ID號)PID

$! 上壹個命令的PID

shell指令碼中#是什麽意思

#在shell指令碼中是註釋的意思,用於說明程式碼的作用。

比如

# 輸出內容

echo "輸出內容"

作業系統與外部最主要的介面就叫做shell。shell是作業系統最外面的壹層。shell管理妳與作業系統之間的互動:等待妳輸入,向作業系統解

釋妳的輸入,並且處理各種各樣的作業系統的輸出結果。 shell提供了妳與作業系統之間通訊的方式。這種通訊可以以互動方式(從鍵盤輸

入,並且可以立即得到響應),或者以shell script(非互動)方式執行。shell script是放在檔案中的壹串shell和作業系統命令,它們可以被

重復使用。本質上,shell script是命令列命令簡單的組合到壹個檔案裏面。 Shell基本上是壹個命令直譯器,類似於DOS下的mand.

。它接收使用者命令(如ls等),然後呼叫相應的應用程式。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。

互動式shell和非互動式shell 互動式模式就是shell等待妳的輸入,並且執行妳提交的命令。這種模式被稱作互動式是因為shell與使用者進行交

互。這種模式也是大多數使用者非常熟悉的:登入、執行壹些命令、簽退。當妳簽退後,shell也終止了。 shell也可以執行在另外壹種模式:非

互動式模式。在這種模式下,shell不與妳進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。

shell的型別在UNIX中主要有兩大類shell Bourne shell (包括 sh, ksh, and bash) Bourne shell ( sh) Korn shell ( ksh) Bourne Again

shell ( bash) POSIX shell ( sh) C shell (包括 csh and tcsh) C shell ( csh) TENEX/TOPS C shell ( tcsh).

附:LINUX系統的shell原理

Linux系統的shell作為作業系統的外殼,為使用者提供使用作業系統的介面。它是命令語言、命令解釋程式及程式設計語言的統稱。

shell是使用者和Linux核心之間的介面程式,如果把Linux核心想象成壹個球體的中心,shell就是圍繞核心的外層。當從shell或其他程式向

Linux傳遞命令時,核心會做出相應的反應。 shell是壹個命令語言直譯器,它擁有自己內建的shell命令集,shell也能被系統中其他應用

程式所呼叫。使用者在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。

linux shell指令碼中 $? 和 $@是什麽意思?

$@ :以("$1""$2"...)的形式儲存所有輸入的命令列引數;

$? :上壹條命令的返回結果.

請教shell指令碼中的&是什麽意思

& 後臺工作

單壹個& 符號,且放在完整指令列的最後端,即表示將該指令列放入後臺中工作。

tar cvfz data.tar.gz data > /dev/null &

shell指令碼中lcd是什麽意思

妳shell指令碼中的 lcd 命令,應該是ftp的內建命令。代表 change local directory——切換本地目錄

用法:

lcd /path/to/your/directory

註:/path/to/your/directory是妳的壹個本地目錄

ftp 還有壹個內建命令 cd

當妳登入ftp伺服器後,就可以用cd命令,切換遠端目錄

shell指令碼中 crontab - 是什麽意思?

-表示標準輸入

如果不加這個-,意思是壹樣的

查詢當前crontab檔案,去掉其中包括/root/monit/monit_reset.sh的行

  • 上一篇:星巴克聖誕限定熔巖黑巧摩卡好喝嗎
  • 下一篇:Ebay編程
  • copyright 2024編程學習大全網