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ų
.sh
failų 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
shellcheck
yra įdiegtas, paleikiamashellcheck
komanda 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:
shellcheck
yra 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
ls
arsed
komandos 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
.sh
failus 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
shellcheck
parametrus ar kitus katalogus patikrinimui. - Integracija su kitais įrankiais: Galima integruoti su kitais statinės analizės įrankiais, tokiais kaip
lint
arcppcheck
, 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ą