[關於宣告]
比較通用的做法,如ksh和bash
declare -a 陣列名
注意在ksh下還支援另外一種獨特的變數宣告賦值語法比較特殊。
set -a varname var1 var2 var3 varn
末了要說明一下,一般任意的shell下變數可以拿來就用,不必宣告。
[關於賦值]
下面的兩種這種方法適用於bash和ksh。
定義一
varname=(var1 var2 var3 varn)
定義二
varname[0]=var1
varname[1]=var2
varname[2]=var3
varname[n-1]=varn
定義三
在csh我們需要這樣定義:
set varname=(var1 var2 var3 varn)
set varname[1]=var1
set varname[2]=var2
set varname[3]=var3
set varname[n]=varn
特別注意在csh和其它shell中不同的是陣列的下標是從1開始的。
[關於引用]
全部引用
方法一
適用於bash、ksh、csh等大部分shell。
$方法二
只適用於bash、ksh,對於csh不適用。
$方法三
只適用於csh,不支援ksh和bash。
$varname
單獨引用
語法適用於bash、ksh、csh等大部分shell,但是在csh/tcsh下的意義和其它shell有差異。
$例如:echo $
請嚴格區分csh與bashcsh的區別。因為在csh中沒有下標為0的陣列元素,下標的序數是從1開始的。
陣列包含數值的數目
方法一:
只適用於bash和ksh,不支援csh。
$方法二:
只支援csh,不支援bash和ksh。
$#varname
陣列中某乙個值的字元長度
只適用於bash和ksh,不支援csh。
$在bash、ksh下$varname與$的含意是一樣的;$varname[1]與$含意是不一樣的,$varname[1]等價於$"[1]"。在csh下$varname與$的含意是一樣的。
[元素的新增、刪除]
刪除陣列中元素:
該方法適用於bash、ksh,不支援csh。
unset varname[5]
關於陣列中元素的值的清除,即置空:
bash和ksh下這樣操作,不支援csh
varname[5]= #清除陣列varname中的第六個元素
關於陣列的清除:
適用於bash、ksh、csh等大部分shell。
unset varname
向陣列中新增元素:
方法一、二只適用於bash、ksh,不適用於csh;
方法一:
varname=($ varn-1 varn varn+1)
方法二:
varname[$]=varn
方法三:
是csh特有的。
set varname=($varname varn+1 varn+2) #或者$varname用$替換。
[關於陣列的批量處理]
這部分內容,說白了就是綜合運用各種shell的內建迴圈命令。只要對前面的內容熟悉了,並對各種shell的迴圈命令有一定的了解,難度就不是很大。
由於涉及bashkshcsh下的實現及不同的語法形式,涉及陣列的賦值、新增和刪除元素、讀取多個方面。所以計畫單獨一篇文章來說明。
C 變數宣告定義
1.extern 宣告變數,在乙個檔案裡宣告以後,表示該變數要去其它檔案找變數,告訴編譯器 你現在編譯的檔案中,有乙個識別符號雖然沒有在本檔案或本檔案當前位置中定義,但是它是在別的檔案中或本檔案其它位置定義的全域性變數,你要放行!宣告變數 extern type variable 有extern,無...
宣告,定義,變數的含義
在c語言中,宣告 告訴計算機 編譯器 有,定義 讓計算機 編譯器 建立,宣告不建立,定義建立。變數在程式執行過程中,其值是可以改變的量 在c語言中,變數的宣告和定義是一體的,先定義 宣告 然後呼叫,呼叫必須在定義 宣告 之後。變數的定義格式為 修飾符 型別說明符 變數名識別符號,變數名識別符號,變數...
C 函式的宣告定義
include 宣告 extern char mystrstrpoint char dest,char src extern char mystrstrarr char dest,char src extern char mystrcat char dest,char src extern void...