Pasitikrinam su ShellCheck
Šis scenarijus (bash skriptas) skirtas patikrinti bash skriptų sintaksės klaidas naudojant įrankį shellcheck. Jis leidžia lengvai peržiūrėti visus .sh failus, esančius jūsų $HOME/git ar kokiame nors kitame kataloge, ir pasirinkti norimą patikrinti skriptą. Po to, shellcheck įrankis yra paleidžiamas su pasirinktu skriptu, kad nustatytų galimas sintaksės ar kitas klaidas ir neefektyvumus.
Kaip veikia
- Skriptas parodo visų
.shfailų sąrašą jūsų parinktame kataloge ir prašo įvesti norimo skripto numerį. - Jis patikrina, ar įvestas numeris yra tinkamas (sveikasis skaičius) ir ar patenka į galimų skriptų diapazono ribas.
- Gavęs tinkamą numerį, jis nusistato pasirinktą skriptą pagal įvestą numerį.
- Tuomet patikrinama, ar
shellcheckįrankis yra įdiegtas sistemoje. Jei ne, rodomas klaidos pranešimas ir skriptas baigia darbą. - Jei
shellcheckyra įdiegtas, paleikiamashellcheckkomanda su pasirinktu skriptu, kad būtų parodyta jo analizė.
Privalumai
- Paprasta naudoti: lengva peržiūrėti ir pasirinkti norimą skriptą iš katalogo.
- Automatizuota sintaksės patikra:
shellcheckyra galingas įrankis, padedantis rasti potencialias klaidas ar neefektyvumus bash scriptuose. - Lanksti: Galima lengvai keisti katalogas ar failų tipus, kuriuos norite analizuoti.
Trūkumai
- Apribota funkcinė sritis: Šis scenarijus skirtas tik patikrinti sintaksės klaidas, bet negali atlikti jokių kitų veiksmų su skriptais.
- Neautomatizuota: Reikia rankiniu būdu pasirinkti skriptą kiekvieną kartą, kai norite jį patikrinti.
- Nėra išimčių apdorojimo: Scenarijus gali nekorektiškai veikti, jei sutinka netikėtą situaciją, pavyzdžiui, jei
lsarsedkomandos išveda kitokią nei tikėtąsi išvestį.
Galimi papildymai ir patobulinimai
- Automatinis visų skriptų patikrinimas: Galima papildyti funkciją, kuri automatiškai patikrintų visus
.shfailus kataloge, nereikalaujant rankinio pasirinkimo. - Klaidos pranešimų apdorojimas: Pridėti klaidos pranešimų apdorojimą, kad scenarijus nesustotų dėl netikėtų situacijų.
- Papildomi parametrai: Leisti naudotojui nurodyti papildomus
shellcheckparametrus ar kitus katalogus patikrinimui. - Integracija su kitais įrankiais: Galima integruoti su kitais statinės analizės įrankiais, tokiais kaip
lintarcppcheck, kad galėtų patikrinti įvairius programavimo kalbų failus.
Apskritai, šis scenarijus yra naudinga priemonė programuotojams, kurie nori greitai patikrinti savo bash skriptų sintaksę ir išvengti potencialių klaidų ar neefektyvumų. Nors jis turi tam tikrų trūkumų, jį galima lengvai patobulinti pagal konkrečius poreikius. Net ir neprogramavęs asmuo galėtų suprasti šio scenarijaus veikimo principą ir naudojimą, nes jis yra gana paprastas ir aiškus.
#!/bin/bash
# File name: patikra
# Author vaidotak
# Date: 2024-06-18
# Description:
# URL:https://funkcijos.wordpress.com/2024/06/18/pasitikrinam-su-shellcheck/
# Parodyti $HOME/git kataloge esančius skriptus su .sh galūne
echo "Pasirinkite skripto numerį iš sąrašo:"
counter=0
shopt -s nullglob # Leidžiame, kad glob pattern negrąžintų nieko, jei nėra failų
for file in "$HOME"/git/*.sh; do
((counter++))
echo "$counter. $(basename "$file")"
done
while true; do
read -r -p "Įveskite norimo skripto numerį: " script_number
# Patikrinti ar įvestas numeris yra tinkamas
if ! [[ "$script_number" =~ ^[0-9]+$ ]]; then
echo "Klaida: Įveskite skaičių."
continue
fi
# Patikrinti ar įvestas numeris yra tinkamo diapazono
num_scripts=$(ls -1 "$HOME"/git/*.sh 2>/dev/null | wc -l)
if ((script_number < 1 || script_number > num_scripts)); then
echo "Klaida: Netinkamas skripto numeris."
continue
fi
break
done
# Gauti pasirinkto skripto pavadinimą
selected_script=$(ls -1 "$HOME"/git/*.sh 2>/dev/null | awk "NR==$script_number")
# Patikrinti pasirinkto skripto sintaksę naudojant shellcheck
if ! command -v shellcheck &>/dev/null; then
echo "Klaida: shellcheck programa nerasta. Įdiekite shellcheck, kad galėtumėte tęsti."
exit 1
fi
echo "Vykdau shellcheck $selected_script"
shellcheck "$selected_script"
Komentarai
Rašyti komentarą