[bash] mon script est lent
Publié : mar. 10 mars 2015, 21:48
Hello world !
Depuis quelques jours, histoire de tuer le temps, j'ai créé une nouvelle commande (qui est en fait un script bash) dont le but est de permettre d'administrer ma archlinux de manière plus simple. Avec quelques arguments, il est possible de configurer mkinitcpio.conf, le fichier pour grub et pacman.conf par exemple. (il aussi possible de défragmenter firefox ect.)
Pour cela j'utilise plusieurs case, méthode assez...bon ce n'est peut-être pas du grand art mais ça marche
Le problème est qu'à présent lorsque j'exécute la commande, cette dernière met du temps à répondre. :/ Je crois que le fait que bash vérifie toutes les conditions fait que l'exécution est lente.
Du coup comment puis-je m'y prendre pour accélérer la chose ? Cordialement.
Depuis quelques jours, histoire de tuer le temps, j'ai créé une nouvelle commande (qui est en fait un script bash) dont le but est de permettre d'administrer ma archlinux de manière plus simple. Avec quelques arguments, il est possible de configurer mkinitcpio.conf, le fichier pour grub et pacman.conf par exemple. (il aussi possible de défragmenter firefox ect.)
Pour cela j'utilise plusieurs case, méthode assez...bon ce n'est peut-être pas du grand art mais ça marche
Code : Tout sélectionner
#!/bin/bash
# admin is a simple bash script created by Maximilien Di Dio, email address: mrgamerlix@gmail.com
# This program is under licence GPLv3 http://www.gnu.org/licenses/gpl.txt
RESETC="$(tput sgr0)"
YELLOW="$(tput bold ; tput setaf 3)"
RED="$(tput bold ; tput setaf 1)"
USER_DIR="$HOME"
FIREFOX_DEFRAG="$(for i in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $i 'VACUUM;'; done)"
FIREFOX_PROFILE="firefox -p"
KERNEL="linux"
ROOT_COMMAND="sudo"
TEXT_EDITOR="$EDITOR"
PACKAGE_MANAGER_EDIT="/etc/pacman.conf"
PACKAGE_MANAGER_UPDATE="pacman -Syu"
GRUB_EDIT="/etc/default/grub"
GRUB_UPDATE="grub-mkconfig -o /boot/grub/grub.cfg"
KERNEL_EDIT="/etc/mkinitcpio.conf"
KERNEL_UPDATE="mkinitcpio -p"
UPMSG="Make an update of the program."
EDMSG="Edit the config file of the program."
FFDEF="Only for Firefox ! To make it faster !"
FFPRO="Only for Firefox ! To manage the profiles."
case $1 in
"-pacman")
case $2 in
"-edit")
$ROOT_COMMAND $TEXT_EDITOR $PACKAGE_MANAGER_EDIT
;;
"-update")
$ROOT_COMMAND $PACKAGE_MANAGER_UPDATE
;;
*)
echo -e "${RED}ERROR${RESETC} Invalid command !\nExecute admin -help for more information !"
;;
esac
;;
"-kernel")
case $2 in
"-edit")
$ROOT_COMMAND $TEXT_EDITOR $KERNEL_EDIT
;;
"-update")
$ROOT_COMMAND $KERNEL_UPDATE $KERNEL
;;
*)
echo -e "${RED}ERROR${RESETC} Invalid command !\nExecute admin -help for more information !"
;;
esac
;;
"-grub")
case $2 in
"-edit")
$ROOT_COMMAND $TEXT_EDITOR $GRUB_EDIT
;;
"-update")
$ROOT_COMMAND $GRUB_UPDATE
;;
*)
echo -e "${RED}ERROR${RESETC} Invalid command !\nExecute admin -help for more information !"
;;
esac
;;
"-firefox")
case $2 in
"-defrag")
$FIREFOX_DEFRAG
;;
"-profile")
$FIREFOX_PROFILE
;;
*)
echo -e "${RED}ERROR${RESETC} Invalid command !\nExecute admin -help for more information !"
;;
esac
;;
"-help")
echo -e "\n${YELLOW}admin is a program which must be used like that:${RESETC}\n\nadmin [program] [option]\n\n${YELLOW}programs availables:${RESETC}\n\n-pacman\n-kernel\n-grub\n-firefox\n\n${YELLOW}options availables:${RESETC}\n\n-edit $EDMSG\n-update $UPMSG\n-defrag $FFDEF\n-profile $FFPRO\n\n"
;;
*)
echo -e "${RED}ERROR${RESETC} Invalid command !\nExecute admin -help for more information !"
;;
esac
exit
Du coup comment puis-je m'y prendre pour accélérer la chose ? Cordialement.