我正在製作一個安裝嚮導,但是我有很多IF語句,它讓我感到困惑,並且迷惑不解,特別是當我嘗試修復某些腳本錯誤時。如何防止這一點?這是我的腳本:如何構造bash代碼以便更容易跟蹤條件?
正如你可以看到我有很多,如果IF語句。我無法跟蹤他們。有沒有像使用HTML一樣標記或最小化它們的方法? 我正在使用Atom文本編輯器。
還是有減少IF語句的方法嗎?
#!/bin/bash
# Author: GlitchyShadowZ
# Name: NJDTL Install Wizard 1.0
# Date of Last Update:
# Date of LEGACY (Initial Release):
clear
echo "Would you like to start the NJDTL Install Wizard? [y/n]"
read startYN
if [ $startYN == y ]
then
echo "Starting Install Wizard. . ."
mkdir ~/.NJDTL
fi
if [ $startYN == n ]
then
echo "Are you sure you want to cancel the Install Wizard? [y/n]"
read CancelConfirm
if [ $CancelConfirm == y ]
then
echo "Cancelling Install. . ."
exit
fi
if [ $CancelConfirm == n ]
then
echo "Chose "n". Continuing Installation. . ."
exec $0
fi
fi
[Loading Screen removed for the purpose of this post]
if ! [ -d ~/sbin ]
then
echo "A Bin folder in /home/ is required for this program. Create one? [y/n]"
read BinChoice
if [ $BinChoice = y ]
then
mkdir ~/testbin
fi
if [ $BinChoice = n ]
then
echo "Without a Bin Folder NJDTL Will not work. Cancelling Install."
fi
else
echo "bin folder existent. Continuing Install. . ."
fi
fi
您應該修復您的縮進。嘗試將'fi'放在與'if'相同的頁邊上,它可以幫助您更好地跟蹤您的'ifs'。但是也有'elif',你可以用它來減少if語句的數量。 – quantik
不要在''''''''''''要麼使用'=',要麼切換到'[['。使用shellcheck.net來檢查你的代碼。 – chepner
順便說一句,構建一個安裝程序,以便在運行後有條件地顯示一大堆提示是不幸的 - 它使安裝程序很難自動化。考慮接受環境變量或命令行參數,所以有人可以在腳本中運行'createBin = 1 batch = 1。/ yourInstaller'或者'./yourInstaller --createBin --batch'(或者像Ansible這樣的自動化工具,廚師,傀儡等),並沒有提示。 –