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程式設計之【一鍵安裝lanmp】程式設計
- shell程式設計基礎程式設計
- Shell程式設計-基礎程式設計
- shell程式設計基礎二程式設計
- shell指令碼程式設計基礎指令碼程式設計
- [SHELL]LNMP一鍵安裝指令碼設計(v1.0)LNMP指令碼
- 玩轉Linux – shell 程式設計基礎Linux程式設計
- Shell程式設計基礎學習之三:變數和test程式設計變數
- shell指令碼一鍵安裝nginx指令碼Nginx
- PostgreSQL_11.1_安裝和基礎配置SQL
- Shell程式設計基礎學習之一:正規表示式程式設計
- [SHELL]LAMP一鍵安裝指令碼設計(v1,v2)LAMP指令碼
- Linux Shell指令碼程式設計-基礎1Linux指令碼程式設計
- Linux系統程式設計(12)——shell基礎Linux程式設計
- shell和命令操作基礎一
- maven安裝與基礎配置Maven
- Mysql安裝及基礎配置MySql
- JNI程式設計基礎(一)程式設計
- Linux之19——Shell程式設計基礎詳解Linux程式設計
- CentOS 7 安裝、配置、使用 PostgreSQL 10 安裝及基礎配置CentOSSQL
- Linux Bash Shell學習(八):shell程式設計基礎——string操作Linux程式設計
- 【Shell】使用shell列印選單,一鍵安裝Web應用Web
- Shell指令碼 | 一鍵解除安裝安卓App指令碼安卓APP
- 『忘了再學』Shell基礎 — 27、AWK程式設計的介紹和基本使用程式設計
- Shell程式設計基礎學習之六:sed 入門程式設計
- Linux Bash Shell學習(七):shell程式設計基礎——執行Shell指令碼、functionLinux程式設計指令碼Function
- 前端【小程式】04-小程式基礎篇【分包載入】前端
- Nginx 基礎理解和安裝Nginx
- 程式設計基礎程式設計
- 使用shell指令碼實現LANMP一鍵安裝指令碼
- shell指令碼:一鍵安裝LAMP、LNMP指令碼指令碼LAMPLNMP
- SharePlexForOracle_安裝配置_基礎使用Oracle
- Shell程式設計基礎學習之四:語法結構程式設計
- MongoDB入門系列(一):基礎概念和安裝MongoDB
- 併發程式設計——基礎概念(一)程式設計
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- XWiki_安裝和基礎配置企業級知識庫
- Linux_day06_01_Shell指令碼程式設計_Bash基礎Linux指令碼程式設計