前言
還是理所當然的前言,我一直想找一套管理指令碼的「框架」,能讓自己雜亂的指令碼有點規整,無奈眼界尚淺,未能找到。因此萌生自己寫一點優化指令碼的工具來,新手可學習,高手請指正。今天先寫乙個指令碼的安裝器,目的在於寫完並新指令碼之後能夠在shell的任何位置都能夠便捷使用。
config.ini主要用於配置兩個目錄。
遞迴遍歷讀取scriptpath目錄下的指令碼檔案,排除掉install.sh和config.ini。
do_file()
為每乙個指令碼在binpath目錄下建立軟鏈結,如果之前存在則會首先刪除掉,並對軟鏈結加上執行許可權(這裡直接加了777)
link_file
() linkpath=$binpath
"/"$linkname
if [[ -l $linkpath ]];then
echo
"===>(warn):"
$linkpath
" is exist,remove it!"
rm $linkpath
fi ln -s
$filepath
$linkpath
echo
"===>(info):link file "
$filepath
" -----> "
$linkname
" successful!"
chmod 777
$linkpath
}
把binpath目錄新增到環境變數中(~/.bash_profile),這樣就可以隨時的訪問指令碼了~
add_profile
()\"" >> ~/.bash_profile
echo
"===>(info)"
$binpath
" is added to bash_profile successful!"
export path=$1:$
else
echo
"===>(info)"
$binpath
" is already in the bash_profile!"
fi}
每次新加的指令碼便可以放在scriptpath目錄,執行install.sh之後便會在binpath裡面生成對應的軟鏈結,然後就可以在終端中自由的使用了~
1.可以看到,我的目錄下面有五個檔案(包括安裝指令碼的配置檔案)
2.執行sh install.sh run 之後
3.在binpath目錄下生成了三個軟鏈結~
4.並在~/.bash_profile裡生成了對應的path
5.可以看到我們在shell的任何位置已經可以是用自己編寫的指令碼指令了~(例如pyversion,是自己寫的乙個修改本地python版本的小指令碼)
6.完整**:
#!/bin/bash
# 讀取config.ini
source ./config.ini
istest=$istest
binpath=$binpath
scriptpath=$scriptpath
editor
()help_fun
()echo_emp
()echo_test
()exit_pro
()link_file
() linkpath=$binpath
"/"$linkname
if [[ -l $linkpath ]];then
echo
"===>(warn):"
$linkpath
" is exist,remove it!"
rm $linkpath
fi ln -s
$filepath
$linkpath
echo
"===>(info):link file "
$filepath
" -----> "
$linkname
" successful!"
chmod 777
$linkpath
}do_file
()add_profile
()\"" >> ~/.bash_profile
echo
"===>(info)"
$binpath
" is added to bash_profile successful!"
export path=$1:$
#只是加到了記憶體中,新開終端失效
else
echo
"===>(info)"
$binpath
" is already in the bash_profile!"fi}
if [[ $# != 1 || $1 != "run" ]];then
help_fun
editor
exit2fi
echo
"是否對"
$scriptpath
"目錄下的指令碼進行安裝?"
echo
"安裝目錄為:"
$binpath
"(y/n)"
read
if [[ $reply == "y" || $reply == "y" ]];then
do_file $scriptpath
add_profile $binpath
echo
"指令碼環境安裝成功!!"
else
echo
"使用者終止exit (abort)"
exit
0fi
本文遵循「署名-非商業用途-保持一致」創作公用協議 玩轉Bash指令碼 選擇結構之if
幾乎所有的程式語言中都有流程控制的概念,即順序結構 選擇結構和迴圈結構。選擇結構也稱分支結構,比如c類語言中的if和switch語句。前面我已經講過了test表示式及其簡化版 運算子的使用,這些判斷的語句即可作為if結構的條件。bash shell中我們可以使用的任何能夠有真假判斷功能的命令 無論是...
玩轉Bash指令碼 選擇結構之if
差點兒全部的程式語言中都有流程控制的概念。即順序結構 選擇結構和迴圈結構。選擇結構也稱分支結構,比方c類語言中的if和switch語句。前面我已經講過了test表示式及其簡化版 運算子的使用,這些推斷的語句就可以作為if結構的條件。bash shell中我們能夠使用的不論什麼能夠有真假推斷功能的命令...
玩轉Bash指令碼 迴圈結構之for迴圈
for 變數 in 取值列表 do 各種操作 done 還有罕見的寫法就是都寫作一行裡 for 變數 in 取值列表 do 各種操作 done 取值列表大致可以分成列舉和迭代兩類 取值列表為空格或回車符分割的字串 foriin meat sleep woman doecho i like i don...