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

最後修改日期: 2007 年 05 月 21 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。