Shell程式設計基礎-04-一鍵安裝和配置
未完待續
#!/bin/bash
#待安裝列表
INSTALL_LIST="jdk-8u111-linux-x64.tar.gz
hadoop-2.6.0-cdh5.14.2.tar.gz
hive-1.1.0-cdh5.14.2.tar.gz
zeppelin-0.8.2-bin-all.tgz
zookeeper-3.4.5-cdh5.14.2.tar.gz
hbase-1.2.0-cdh5.14.2.tar.gz
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz"
#驗證待安裝列表所需原始檔是否都存在
LIST=`ls /opt/download/hadoop`
for item in $INSTALL_LIST
do
if [[ $LIST =~ $item ]]
then
continue
else
echo "install exit abnormally,for the lack of $item"
exit 0
fi
done
#上面的程式碼是通過查詢資料夾裡的檔案,然後和最上面的檔案清單逐一比對,比對成功則進入下面的程式碼
#解壓和重新命名
echo "start to installing"
echo "first,we'll unpack all the items ..."
#確保解壓目錄存在
DEST_DIR="/opt/software/" #設定目標路徑
if [[ ! -e $DEST_DIR ]] #如果目標路徑不存在
then
RST=`mkdir $DEST_DIR` #建立目標路徑
fi
#建立重新命名的檔案清單陣列,和上面要安裝的檔案清單一一對應,建立一個虛擬索引來對應上
RENAME_LIST="jdk180 hadoop260 hive110 zeppelin082 zookeeper345 hbase120 sqoop146"
RENAME_LIST=($RENAME_LIST)
IX=0
cd /opt/software #上面建立完目錄後,進入此目錄,因為解壓縮的指令 -C 在這裡暫時沒有方法執行
echo "change dir to "`pwd`
for item in $INSTALL_LIST #遍歷待解壓的檔案
do
if [[ $item =~ tar|gz$ ]] #如果這個元素滿足tar或gz結尾的格式
then
echo "start to unpack $item ..." #輸出開始解壓的提示
#${STR##*WORD},刪除'.tar'前面所有的資訊。
#如果是.gz格式的,則OPT等於.gz,如果是.tar格式的,則等於空
OPT=${item##*.tar}
#根據上一條指令進行判斷[ $OPT ],如果不為空,就是.gz結尾的壓縮檔案,
#則返回返回字串“z”拼接到xf(後臺壓縮)上,反之則為.tar檔案。
OPT="-"$([ $OPT ] && echo "z" || echo "" )"xf"
#eval是掃描兩次後面的程式碼,第二次根據第一次掃描的結果執行。
#該句第一次掃描將引用轉為命令,第二次掃描執行該命令
RST=`eval "tar $OPT /opt/download/hadoop/$item"`
echo $RST
#eval同上一條。裡邊內容是mv oldname newname,
#${item%%-*}*是把原始檔從後往前的所有-後面的內容都刪掉
#然後用*去匹配所有包含前面欄位(比如hadoop)的檔案,
#匹配上了就改名為RENAME_LIST裡對應的元素
RST=`eval "mv ${item%%-*}* ${RENAME_LIST[$IX]}"`
echo "unpack $item and rename to ${RENAME_LIST[$IX]} ok"
fi
((IX++))
done
相關文章
- shell程式設計基礎程式設計
- Shell程式設計-基礎程式設計
- shell程式設計基礎二程式設計
- Linux-shell程式設計入門基礎Linux程式設計
- Linux Shell指令碼程式設計-基礎1Linux指令碼程式設計
- PostgreSQL_11.1_安裝和基礎配置SQL
- shell指令碼一鍵安裝nginx指令碼Nginx
- Linux之19——Shell程式設計基礎詳解Linux程式設計
- Shell指令碼 | 一鍵解除安裝安卓App指令碼安卓APP
- maven安裝與基礎配置Maven
- Mysql安裝及基礎配置MySql
- shell指令碼一鍵安裝nginx-1.18.0指令碼Nginx
- 『忘了再學』Shell基礎 — 27、AWK程式設計的介紹和基本使用程式設計
- CentOS 7 安裝、配置、使用 PostgreSQL 10 安裝及基礎配置CentOSSQL
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- Linux_day06_01_Shell指令碼程式設計_Bash基礎Linux指令碼程式設計
- 如何在 Linux 中安裝、配置和使用 Fish Shell?Linux
- Nginx 基礎理解和安裝Nginx
- shell程式設計—簡介(一)程式設計
- 前端【小程式】04-小程式基礎篇【分包載入】前端
- 併發程式設計——基礎概念(一)程式設計
- Linux Shell 程式設計基礎詳解——吐血整理,牆裂推薦!Linux程式設計
- Shell程式設計-建立和執行程式設計
- jdk+tomcat+mysql一鍵安裝配置JDKTomcatMySql
- XWiki_安裝和基礎配置企業級知識庫
- Shell程式設計程式設計
- python程式設計基礎Python程式設計
- Socket程式設計基礎程式設計
- Go程式設計基礎Go程式設計
- ai繪畫基礎總結(一)安裝設定AI
- 二、python安裝和基礎使用Python
- Go 併發程式設計 - Goroutine 基礎 (一)Go程式設計
- Shell程式設計 --- Shell介紹程式設計
- Bash程式設計基礎之語法和工具程式設計
- [html基礎]原生表格一鍵搭建,一鍵生成程式碼HTML
- Java 基礎02Java程式設計基礎Java程式設計
- 學習Shell程式設計要掌握哪些基礎?linux運維工程師前景程式設計Linux運維工程師
- Windows程式設計系列:圖形程式設計基礎Windows程式設計