利用 include 檔案來配置輸入選項跟執行指令可能會是比較好的方案,甚至可以在執行期改變選項跟執行指令的內容。
你需要先學習的幾個關鍵
1. include 的用法
2. for aaa in aaas 的用法
3. $IFS 的用法
4. 最基本的 if []; then 還不會就得打屁股了
5. 用 while 迴圈把他包成無窮迴圈等到 exit 為止應該也是很基本的
我想會這些應該就夠寫出這個功能了,只是被 include 盡來的檔案還是要手動維護,雖然也能自動變更,但是那是另一個議題了,而且要先有規則才有可能。
中午抽空寫了一個,顧慮到執行指令有可能要有空白帶參數,所以用 read 逐行讀取以及 eval 執行來實做 ,參考看看:
檔案 mycmd (最後請務必留一行空行,這是 linux shell script 的其中一個罩門)
引用:
1:clear
2:/etc/init.d/squid start
3:/etc/init.d/squid stop
檔案 mytest.sh
引用:
EXITFLAG=0
CMDS=""
while [ "$EXITFLAG" == "0" ]
do
echo "Main Menu"
echo "0:Exit"
while read line
do
echo $line
IFS_SAVE="$IFS"
IFS=":"
set - $(echo "$line")
eval "CMD$1=\"$2\""
CMDS="$CMDS CMD$1"
IFS="$IFS_SAVE"
done < "mycmd"
read -p "please enter option:" opt
if [ "$opt" == "0" ]; then
echo "Bye Bye"
EXITFLAG=1
else
eval "CMD=\$CMD$opt"
if [ "" == "$CMD" ]; then
echo "$opt is a invalid option!"
echo ""
else
eval $CMD
fi
for CMD in CMDS
do
eval "CMD$opt=\"\""
done
CMDS=""
fi
done
[watchme 在 2012-8-23 01:40 PM 作了最後編輯]