Šaunus kamandų paleidėjas ir failų chmod įrankis

Šį bash scenarijų sukūriau tam, kad leistų vartotojui lengvai pasirinkti ir paleisti iš anksto nustatytas komandas iš tekstinio failo arba vykdyti papildomus veiksmus, pvz., pakeisti failų leidimus naudojant chmod.

Veikimo principas:

  1. Pradžioje, scenarijus nuskaito komandas iš nurodyto tekstinio failo, kuris yra pasirinktas naudotojo.

  2. Vartotojui pateikiamas sąrašas galimų komandų iš tekstinio failo (pridėjau dar ir masyvą papildomai komandoms papildyti tiesiog skripte) ir jis gali pasirinkti, kurią komandą nori paleisti.

  3. Jei vartotojas pasirenka chmod +x, scenarijus rodo visus .sh failus esančius tame pačiame kataloge ir leidžia vartotojui pasirinkti, kuriam iš jų nori pritaikyti chmod +x.

  4. Pasirinkus komandą, vykdoma ji, o jei pasirinkta chmod +x, pritaikomas chmod pasirinktam failui.

Kilmės šaltiniai:

  • Scenarijus nuskaito pagrindines komandas iš tekstinio failo, kuris yra pasirinktas naudotojo.

  • Papildomas funkcionalumas, susijęs su chmod, naudoja find komandą, kad surastų .sh failus esančius tame pačiame kataloge.

bash
#!/bin/bash # Tekstinio failo su komandomis pavadinimas commands_file="$HOME/commands.txt" # Funkcija patikrinti, ar įvestis yra skaitinė is_numeric() { if [[ "$1" =~ ^[0-9]+$ ]]; then return 0 else return 1 fi } # Komandų sąrašo nuskaitymas commands=() while IFS= read -r line; do commands+=("$line") done < "$commands_file" commands+=("ls -l" "clear") # Papildomas pranešimas apie "chmod +x" komandą echo "Papildomas funkcionalumas: jei pasirinksite 'chmod +x', bus rodomi visi .sh failai šiame kataloge." # Komandų sąrašo spausdinimas echo "Pasirinkite komandą paleisti:" for ((i = 0; i < ${#commands[@]}; i++)); do echo "$((i + 1)). ${commands[$i]}" done # Pasirinkimo gavimas while true; do read -p "Įveskite komandos numerį: " choice # Patikrinimas, ar įvestis yra skaitinė if is_numeric "$choice"; then if [[ $choice -ge 1 && $choice -le ${#commands[@]} ]]; then selected_command="${commands[$choice - 1]}" echo "Paleidžiama komanda: $selected_command" # Patikrinimas, ar pasirinkta komanda yra "chmod +x" if [[ "$selected_command" == "chmod +x" ]]; then # Surasti visus .sh failus ir juos rodyti vartotojui sh_files=$(find . -maxdepth 1 -type f -name "*.sh" -exec basename {} \;) echo "Pasirinkite failą, kuriam norite pritaikyti chmod +x:" select file in $sh_files; do if [[ -n $file ]]; then # Patikrinimas, ar pasirinktas failas yra tinkamas if [[ -f "$file" ]]; then chmod +x "$file" echo "Failui $file pritaikyta chmod +x." break else echo "Nerastas failas: $file" fi else echo "Neteisingas pasirinkimas. Bandykite dar kartą." fi done else eval "$selected_command" fi break else echo "Neteisingas pasirinkimas. Pasirinkite tinkamą komandos numerį." fi else echo "Neteisingas pasirinkimas. Įveskite skaitinę reikšmę." fi done

Pridėjau pavyzdinį commands.txt

 

perl
fastfetch sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y python3 -m venv $HOME/Python source $HOME/Python/bin/activate stat -c %w / | cut -b 1-16 #mano Debian instaliavimo data chmod +x free -m -l -t curl ifconfig.me curl geofind.me curl api.myip.com
Šis bash scenarijus yra geras įrankis, leidžiantis vartotojui lengvai ir patogiai vykdyti įvairias komandas iš tekstinio failo ir vykdyti papildomus veiksmus, tokius kaip failų leidimų keitimas. Tai suteikia naudotojui daugiau kontrolės ir efektyviau valdo darbo procesus.

Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Monitoring SFTP server updates with Python