以下兩行完全相同嗎?如果不是有什麼區別?我見過很多的shell腳本利用數字1和只是想知道是什麼讓你有號碼2在ksh中使用排版與簡單設置變量有什麼區別?
typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
以下兩行完全相同嗎?如果不是有什麼區別?我見過很多的shell腳本利用數字1和只是想知道是什麼讓你有號碼2在ksh中使用排版與簡單設置變量有什麼區別?
typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
typeset
將創建一個局部變量(一個相比不「泄漏」)。這在函數中很有用,但我也看到它在shell腳本的頂層使用。
a=0
function x {
typeset a=1
}
x
echo $a
function y {
a=2
}
y
echo $a
將打印
0
2
您還可以使用typeset
創建數組和整數。
[編輯]添加了function
關鍵字,因爲有些外殼需要它。如果它冒犯你的外殼,將其刪除,但它應該適用於大多數版本。
由於shell腳本是一種鬆散類型的語言(其中變量不具有datytype),我們可以使用typeset來設置一個特定的變量來僅使用類似的數據類型的值。
您的示例代碼按照bash和傳統ksh(ksh88)的預期方式工作,但不與ksh93一起使用,它需要使用`function name {`語法,而不是`name(){`one'來聲明函數。 – jlliagre 2011-12-15 05:58:22