Įvadas
Norėdamas pagerinti savo darbo efektyvumą ir sutaupyti laiko, sukūriau automatizuotą bash scenarijų, kuris padeda valdyti, tikrinti ir dokumentuoti kitus scenarijus. Šis scenarijus skirtas automatizuotai nuskenuoti visus .sh
failus mano git
kataloge, patikrinti jų aprašymus, URL ir naudojimą .bashrc
ir .bash_aliases
failuose, o rezultatus pateikti terminale ir išsaugoti Markdown formatu, kad galėčiau juos peržiūrėti Obsidian
programoje.
#!/bin/bash# Description: Scenarijus, kuris rodo visus mano naudojamus scenarijus su aprašymais, web nuorodomis ir sąsaja su bashrc ir bash_aliases# URL: # Keičiame į git katalogącd "$HOME/git" || exit# Sukuriame tuščią failą mano_skriptai.md: > "$HOME/Obsidian/notes/mano_skriptai.md"# ANSI spalvų kodaiRED='\033[1;31m'GREEN='\033[1;32m'YELLOW='\033[1;33m'NC='\033[0m' # No Color# Ieškome .sh failųfor file in *.sh; do # Ištraukiame scenarijaus pavadinimą script_name=$(basename "$file") # Ištraukiame aprašymą ir URL iš komentarų description=$(grep -m 1 "^# Description:" "$file" | cut -d ':' -f 2- | sed 's/^[[:space:]]*//') url=$(grep -m 1 "^# URL:" "$file" | cut -d ':' -f 2- | sed 's/^[[:space:]]*//') # Patikrinama, ar scenarijus naudojamas .bashrc if grep -q "$script_name" "$HOME/.bashrc"; then bashrc_usage="Naudojamas" bashrc_usage_color="$GREEN" else bashrc_usage="Nenaudojamas" bashrc_usage_color="$RED" fi # Patikrinama, ar scenarijus naudojamas .bash_aliases alias_usage=$(grep "^alias[[:space:]]\+[^=]*=.*$script_name" "$HOME/.bash_aliases" | sed "s/^alias[[:space:]]\+\([^=]*\)=.*/\1/") if [ -z "$alias_usage" ]; then alias_usage="Nenaudojamas" alias_usage_color="$RED" else alias_usage_color="$GREEN" fi # Išvedame informaciją į terminalą echo -e "scenarijaus pavadinimas: ${YELLOW}$script_name${NC}" if [ -n "$description" ]; then echo -e "# Description: ${GREEN}$description${NC}" else echo -e "# Description: ${RED}Aprašas nerastas${NC}" fi if [ -n "$url" ]; then echo -e "# URL: ${GREEN}$url${NC}" else echo -e "# URL: ${RED}URL nerastas${NC}" fi echo -e "# .bashrc: ${bashrc_usage_color}$bashrc_usage${NC}" if [ "$alias_usage" != "Nenaudojamas" ]; then echo -e "# .bash_aliases: ${GREEN}$alias_usage${NC}" else echo -e "# .bash_aliases: ${RED}Nenaudojamas${NC}" fi echo "––––––––––––––––––" # Išsaugome informaciją į failą echo "scenarijaus pavadinimas: $script_name" >> "$HOME/Obsidian/notes/mano_skriptai.md" if [ -n "$description" ]; then echo "\# Description: $description" >> "$HOME/Obsidian/notes/mano_skriptai.md" else echo "\# Description: Aprašas nerastas" >> "$HOME/Obsidian/notes/mano_skriptai.md" fi if [ -n "$url" ]; then echo "\# URL: $url" >> "$HOME/Obsidian/notes/mano_skriptai.md" else echo "\# URL: URL nerastas" >> "$HOME/Obsidian/notes/mano_skriptai.md" fi echo "\# .bashrc: $bashrc_usage" >> "$HOME/Obsidian/notes/mano_skriptai.md" if [ "$alias_usage" != "Nenaudojamas" ]; then echo "\# .bash_aliases: $alias_usage" >> "$HOME/Obsidian/notes/mano_skriptai.md" else echo "\# .bash_aliases: Nenaudojamas" >> "$HOME/Obsidian/notes/mano_skriptai.md" fi echo "––––––––––––––––––" >> "$HOME/Obsidian/notes/mano_skriptai.md"done
Kaip veikia
Pagrindinės funkcijos
- Git katalogo tikrinimas: Skriptas pradeda veikti nuo nurodymo pereiti į
git
katalogą, kur saugomi visi .sh
failai. - Markdown failo kūrimas: Skriptas sukuria (arba išvalo esamą) tuščią
mano_skriptai.md
failą Obsidian
notes kataloge. - Scenarijų nuskaitymas: Kiekvienam
.sh
failui kataloge skriptas:- Nuskaito failo pavadinimą.
- Ištraukia aprašymą ir URL iš komentarų.
- Patikrina, ar failas naudojamas
.bashrc
ir .bash_aliases
failuose.
- Informacijos išvedimas: Visa surinkta informacija išvedama į terminalą spalvotai:
- Geltona spalva: Scenarijaus pavadinimas.
- Žalia spalva: Reikšmės, kurios rastos ar naudojamos.
- Raudona spalva: Reikšmės, kurios nerastos ar nenaudojamos.
- Informacijos išsaugojimas: Visa informacija taip pat išsaugoma
mano_skriptai.md
faile, tinkamai suformatuota, kad būtų patogi peržiūrai Obsidian
programoje.
Kaip Naudotis
- Nusikopijuokite skriptą: Nukopijuokite aukščiau pateiktą skriptą į savo tekstinį redaktorių ir išsaugokite jį, pvz., kaip
scan_scripts.sh
. - Pakeiskite katalogų kelią: Įsitikinkite, kad
HOME/git
ir HOME/Obsidian/notes
keliai atitinka jūsų sistemos struktūrą. - Suteikite vykdymo teisę: Naudokite komandą
chmod +x scan_scripts.sh
, kad suteiktumėte skriptui vykdymo teisę. - Paleiskite Skriptą: Paleiskite skriptą naudodami komandą
./scan_scripts.sh
.
Privalumai
- Automatizavimas: Scenarijus labai sutaupo laiką, automatizuodamas scenarijų tikrinimą ir dokumentavimą.
- Aiški dokumentacija: Visa informacija išsaugoma aiškiai ir tvarkingai, kas yra labai naudinga, kai turiu daug skirtingų scenarijų.
- Spalvotas išvedimas: Tai padeda greitai suprasti, kurie scenarijai yra naudojami ar turi aprašymus, ir kurie ne.
- Suderinamumas su Obsidian: Informacija yra išsaugoma tokiu formatu, kad būtų patogu naudotis Obsidian programoje.
Trūkumai
- Statinis kelias: Skriptas yra priklausomas nuo specifinių katalogų, kuriuos reikia koreguoti rankiniu būdu.
- Tik
.sh
failai: Skriptas tikrina tik .sh
failus. Jei turiu kitų tipų scenarijų, juos reikės pritaikyti atskirai. - Ribota informacija: Skriptas ištraukia tik pirmą aprašymą ir URL iš failo komentarų. Jei failas turi daugiau informacijos, ji bus praleista.
Ką galima papildyti ir pakeisti
- Dinaminiai katalogai: Pridėti galimybę nurodyti katalogus kaip skripto parametrus, kad būtų lankstesnis naudojimas.
- Papildoma informacija: Išplėsti skriptą, kad būtų galima ištraukti daugiau informacijos iš komentarų, pvz., autorių, sukūrimo datą ir kt.
- Failų tipų palaikymas: Pridėti galimybę tikrinti ir kitų tipų scenarijus, ne tik
.sh
failus. - Paieška subkataloguose: Pridėti rekursyvią paiešką subkataloguose, kad būtų tikrinami visi scenarijai visame
git
kataloge.
Išvada
Šis shell skriptas yra paprastas, bet galingas įrankis scenarijų tikrinimui ir dokumentavimui. Jis padeda greitai rasti ir identifikuoti naudojamus scenarijus, pateikia informaciją patogiu formatu ir suteikia galimybę lengvai peržiūrėti informaciją naudojant Obsidian
programą. Naudodamiesi šiuo įrankiu, galiu efektyviau valdyti savo scenarijus ir palaikyti tvarką savo sistemoje.
https://funkcijos.wordpress.com/2024/06/06/skriptu-dokumentavimas/
#bashrc #bashAliases #sh