Šį 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:

  • Pradžioje, scenarijus nuskaito komandas iš nurodyto tekstinio failo, kuris yra pasirinktas naudotojo.
  • 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.
  • 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.
  • 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.
    #!/bin/bash# Tekstinio failo su komandomis pavadinimascommands_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 nuskaitymascommands=()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 spausdinimasecho "Pasirinkite komandą paleisti:"for ((i = 0; i < ${#commands[@]}; i++)); do echo "$((i + 1)). ${commands[$i]}"done# Pasirinkimo gavimaswhile 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ę." fidone

    Pridėjau pavyzdinį commands.txt

    fastfetchsudo apt update && sudo apt upgrade -y && sudo apt autoremove -ypython3 -m venv $HOME/Pythonsource $HOME/Python/bin/activatestat -c %w / | cut -b 1-16 #mano Debian instaliavimo datachmod +xfree -m -l -tcurl ifconfig.mecurl geofind.mecurl api.myip.comcat </dev/tcp/time.nist.gov/13

    Š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.

    https://funkcijos.wordpress.com/2024/05/14/saunus-kamandu-paleidejas-ir-failu-chmod-irankis/

    #bash #Debian #komandos #mano #Programavimas #terminalas

    Š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…

    bitų srautas