2008/02/26 added
一般定義變數可能是
a="1 2 3"
echo 出來就是 1 2 3
但如果 a=(1 2 3)
就會有陣列的效果
echo ${a[0]} 會出來 1
echo ${a[1]} 會出來 2
echo ${a[2]} 會出來 3
2008/02/24 added
取 /var/ 值
a=/var/log/httpd/access_log
echo ${a:0:5}
取 var/l 值
echo ${a:1:5}
將 log 換成 ggg
echo ${a/log/ggg}
/var/ggg/httpd/access_log
將全部 log 換成 ggg
echo ${a/log/ggg}
/var/ggg/httpd/access_ggg
得知共多少個字串
echo ${#a}
如何只取一整個路徑前面的值
比如說路徑為 /var/log/http/
CROSS=/var/log/http/
echo ${CROSS%/*/}
顯示出
/var/log
就是把 /httpd/ 刪掉了
但如果為
CROSS=/var/log/http
要
echo ${CROSS%/*}
才會顯示出
/var/log
或者可以用結尾是否有 / 來判斷用那個吧
補充:
CROSS=/var/log/http
echo ${CROSS%/*}
這個是從後面%開始,刪除最短距離斜線 / 後的字串,也就是 /http
如果要顯示 /var
echo ${CROSS%/*/*}
參考: http://linux.vbird.org/linux_basic/0320bash.php#variable_other
留言