echo + ${} 用法

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

評論: 0 | 引用: 0 | 閱讀: 1445 | 列印 | 文件 | 轉發

發表評論
暱 稱: 密 碼:
網 址: E - mail:
驗證碼: 驗證碼圖片 選 項:
頭 像:
內 容:
  • 粗體
  • 斜體
  • 底線
  • 插入圖片
  • 超連結
  • 電子郵件
  • 插入引用
  • 表情符號