{}
是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}