web-dev-qa-db-fra.com

Comment puis-je faire en sorte que mon script Shell accepte automatiquement les invites?

J'ai créé un simple script Shell (que j'exécute en tant que root) pour télécharger les applications essentielles dont j'ai besoin à chaque fois que je réinstalle ubuntu: Cela ressemble à ceci:

apt-get install docky && apt-get install geany && apt-get install firefox && apt-get install audacity && apt-get install kdenlive && apt-get install openshot && apt-get install shotwell && apt-get install stellarium && apt-get install Thunderbird, etc...

Le problème est que je reçois toujours des invites Y/n et que je dois manuellement appuyer sur Y tout le temps. Existe-t-il un moyen d'accepter automatiquement toutes les invites et de tout télécharger et installer?

1
shortstheory

Utilisez la magie.

Si vous manquez de magie, essayez de passer apt-get quelques arguments. -y devrait vous aider. Il indique à apt-get à l'avance que vous allez dire oui à l'invite de confirmation.

apt-get install -y docky geany firefox audacity kdenlive openshot shotwell stellarium Thunderbird

Pour une liste de ce que vous pouvez et ne pouvez pas faire avec apt-get, tapez man apt-get dans un terminal et appuyez sur Enter. Vous pouvez également le faire avec n'importe quelle autre commande. Par exemple, man Sudo, ou man nano, ou même man chromium-browser.

7
amanthethy

Vous pouvez simplement lister plusieurs packages à installer dans la même commande. Je crois que cela vous donnera également une seule invite y/n. Exemple:

Sudo apt-get install docky geany firefox

1
TheSchwa

J'ai trouvé dans le passé que l'enchaînement des commandes de cette manière provoque des problèmes si l'un d'eux a un "hoquet".

Par exemple, si votre commande est similaire à ceci:

Sudo apt-get install 1 2 3 4

alors, s'il y a une erreur sur le programme 3, 4 ne s'installera pas. Les garder séparés sur chaque ligne résout ce problème. s'il y a une erreur, le script continue.

Voici un exemple de script que j'utilise pour de nouvelles installations:

echo " "
echo "Please run this in an empty folder. Failure to do so may cause data loss!"
read -p "Press ENTER to continue, or close the window to abort."

echo " "
echo "Now backing up the sources list."
read -p "Press ENTER to continue..."
Sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

echo " "
echo "Now adding all the new repositories and keys."
read -p "Press ENTER to continue..."
Sudo add-apt-repository -y "ppa:maarten-baert/simplescreenrecorder"
Sudo add-apt-repository -y "deb http://download.videolan.org/pub/debian/stable/ /"
Sudo add-apt-repository -y "ppa:stebbins/handbrake-releases"
Sudo add-apt-repository -y "ppa:tsbarnes/indicator-keylock"
Sudo add-apt-repository -y "ppa:freefilesync/ffs"
Sudo add-apt-repository -y "deb http://apt.insynchq.com/ubuntu trusty non-free contrib"
Sudo apt-add-repository -y "ppa:rael-gc/scudcloud"
wget -qO - https://d2t3ff60b2tol4.cloudfront.net/[email protected] \ | Sudo apt-key add -
wget -O - http://download.videolan.org/pub/debian/videolan-apt.asc | Sudo apt-key add -

echo " "
echo "Now removing all the programs I never use"
read -p "Press ENTER to continue..."
Sudo apt-get autoremove -y abiword 
Sudo apt-get autoremove -y gnumeric 
Sudo apt-get autoremove -y firefox 
Sudo apt-get autoremove -y gmusicbrowser 
Sudo apt-get autoremove -y Parole
Sudo apt-get update

echo " "
echo "Now installing everything I use."
read -p "Press ENTER to continue..."
Sudo apt-get install -y gdebi
Sudo apt-get install -y screen
Sudo apt-get install -y openvpn
Sudo apt-get install -y openjdk-7-jre
Sudo apt-get install -y guake
Sudo apt-get install -y libreoffice
Sudo apt-get install -y audacity
Sudo apt-get install -y synaptic
Sudo apt-get install -y moc
Sudo apt-get install -y p7Zip-full
Sudo apt-get install -y mtools
Sudo apt-get install -y mono-runtime
Sudo apt-get install -y wine
Sudo apt-get install -y aisleriot
Sudo apt-get install -y gparted
Sudo apt-get install -y tango-icon-theme
Sudo apt-get install -y tango-icon-theme-extras
Sudo apt-get install -y Thunderbird
Sudo apt-get install -y htop
Sudo apt-get install -y xscreensaver
Sudo apt-get install -y python-pygame
Sudo apt-get install -y gimp
Sudo apt-get install -y xterm
Sudo apt-get install -y indicator-keylock 
Sudo apt-get install -y libdvdcss2 
Sudo apt-get install -y vlc 
Sudo apt-get install -y handbrake-gtk 
Sudo apt-get install -y openshot 
Sudo apt-get install -y openshot-doc 
Sudo apt-get install -y simplescreenrecorder
Sudo apt-get install -y freefilesync 
Sudo apt-get install -y mono-devel 
Sudo apt-get install -y pinta 
Sudo apt-get install -y insync
Sudo apt-get install -y scudcloud
Sudo apt-get install -y hunspell-en-ussudo 
Sudo apt-get install -y xscreensaver-screensaver-webcollage 
Sudo apt-get install -y xscreensaver-screensaver-bsod 
Sudo apt-get install -y xscreensaver-screensaver-dizzy 
Sudo apt-get install -y xscreensaver-gl 
Sudo apt-get install -y xscreensaver-gl-extra 

echo " "
echo "Downloading .deb files."
read -p "Press ENTER to continue..."
wget https://dl.google.com/linux/direct/google-chrome-stable_current_AMD64.deb
wget http://download.teamviewer.com/download/teamviewer_i386.deb

echo " "
echo "Now installing the .deb files we downloaded earlier."
read -p "Press ENTER to continue..."
Sudo gdebi google-chrome-stable_current_AMD64.deb
Sudo gdebi teamviewer_i386.deb

echo " "
echo "Now configuring mono."
read -p "Press ENTER to continue..."
mozroots --import --ask-remove

echo " "
echo "Now cleaning up the mess we made."
read -p "Press ENTER to continue..."

echo " "
Sudo apt-get autoremove -y && Sudo apt-get clean

echo " "
echo "Now we'll download kernel 4.0. ABORT if you are uncertain that you want this!"
read -p "Press ENTER to continue..."
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-rc1-vivid/linux-headers-4.0.0-040000rc1_4.0.0-040000rc1.201502222235_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-rc1-vivid/linux-headers-4.0.0-040000rc1-generic_4.0.0-040000rc1.201502222235_AMD64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-rc1-vivid/linux-image-4.0.0-040000rc1-generic_4.0.0-040000rc1.201502222235_AMD64.deb

echo " "
echo "Now installing kernel 4.0. LAST CHANCE TO ABORT!"
read -p "Press ENTER to continue..."
Sudo dpkg -i linux-headers-4.0*.deb linux-image-4.0*.deb

echo " "
echo "Now cleaning up our mess again."
read -p "Press ENTER to continue..."
rm *.deb
Sudo reboot
1
Tethtibis