{}是parameter的方法,
${var}是比較好的寫法,如果沒有要加其他字串可以用$var就好。
小心空格是有差的,他不像其他程式寫作,多空一個與少空一格是有差的。
其他變數一些用法:
# remote shell $RSH會等於/usr/bin/rsh 如果RSH當初沒有給值
RSH=${RSH:-/usr/bin/rsh}
# :+ 這種方式用在可有可無的option很好用
# 以下面這個副程式為例子
# 如果傳參數給他則VAR變成"-o 參數",沒有參數則VAR沒有值
# $1 是第一個傳進來的參數 如果有值VAR就用"-o $1"
func()
{
VAR=${1:+" -o $1"}
}
# :% 這種可以用在擷取字串的某部份
# 例如 find 或者有的命令取回的結果往往是絕對路徑名
# 但我們只想要最後面的那個檔案名時可以用這個來擷取
# 不過傳統的bourne shell沒有% # pattern match,這只有在
# ksh bash才有 最好不要用改用sed比較保險一點
PRIV_HOST=fermion-priv
PUB_HOST=${PRIV_HOST:%-priv}
echo $PUB_HOST
(PUB_HOST會等於fermion)
# 代換也是 在新的Korn shell與Bourne Again Shell上才有
BLOCK_DEVICE=/dev/vx/dsk/oracledg/vol_0
RAW_DEVICE=${BLOCK_DEVICE/dsk/rdsk}