από giwrgosatma » 29 Αύγ 2015, 20:19
το βαζω αλλα υπαρχει προβλημα..στον ελεγχο εδω ειναι ενα script που φτιαχνω
- Κώδικας: Επιλογή όλων
#!/bin/sh
# Author: Giwrgos Atmatsidis
#First Run of Script
epilogh="0"
echo "-----MENU-----"
echo ""
echo "Xαίρεται $USER τι θα θέλατε να κάνετε ; [πατήστε το πλήκτρο της επιλογής σας]."
echo ""
echo "1.Eνημέρωση - Aναβάθμιση"
echo "2.Θέλω να καθαρίσω το λειτουργικό μου σύστημα Ubuntu."
echo "3.Θέλω να καθαρίσω τους παλιούς πυρήνες."
echo "4.Έχω πρόβλημα στο Τερματικό καθώς εκτελώ 'apt-get update' 'apt-get upgrade'"
echo "0.Έξοδος"
echo "Πατήστε την επιλογή σας παρακάτω"
read epilogh
#cheak for correct entry
while [ "$epilogh" -ne "0" ] || [ "$epilogh" -ne "1" ] || [ "$epilogh" -ne "2" ]
do
if [ "$epilogh" = "0" ] ; then
echo "Bye"
exit
else
echo "Έχετε δώσει λάθος εντολή.Παρακαλώ πληκτρολογήστε την σωστή επιλογή ή το 0 για έξοδο"
read epilogh
fi
done
#end of cheak correct entry
if [ "$epilogh" = "1" ] ; then
#update
echo "Έχετε πραγματοποιήση ενημέρωση και αναβάθμιση του συστήματος στις">logfile #create and write on logfile
date >>logfile #create and write on logfile
sudo apt-get update #run command
echo "Παρακαλώ αναμένεται καθώς η διαδικασία καταγράφετε στο αρχείο"
echo "" >>logfile
echo "" >>logfile
sudo apt-get update >>logfile #create and write on logfile the command output
echo "" >>logfile
echo "" >>logfile
#upgrade
sudo apt-get upgrade
echo "Παρακαλώ αναμένεται καθώς η διαδικασία καταγράφετε στο αρχείο"
echo "" >>logfile
echo "" >>logfile
sudo apt-get upgrade >>logfile
echo ""
echo "Σας παροτρύνει το Τερματικό να χρησιμοποιήσετε την εντολη 'apt-get autoremove' ? εάν ναι τότε υπάρχουν πακέτα που δεν χρειάζονται πλέον πατήστε ΕΝΤΕR για να την εκτελέσετε.H οποιοδήποτε άλλο πλήκτρο για να συνεχίσετε "
read term
fi
#cheak users answer about autoremove
if [ "$term" = "" ] ; then
sudo apt-get autoremove
echo "Παρακαλώ αναμένεται καθώς η διαδικασία καταγράφετε στο αρχείο"
echo "" >>logfile
echo "" >>logfile
sudo apt-get autoremove >>logfile
echo ""
fi
#clean
if [ "$epilogh" = "2" ] ; then
echo "Έχετε πραγματοποιήση τακτοποίηση πακέτων του συστήματος στις">logfile #create and write on logfile
date >>logfile #create and write on logfile
sudo apt-get --purge autoremove #run command
sudo apt-get autoremove #run command
sudo apt-get autoclean #run command
sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') aptitude search '~c' -F '%p' | xargs -n 30 sudo aptitude -y purge
echo "Παρακαλώ αναμένεται καθώς η διαδικασία καταγράφετε στο αρχείο"
echo "" >>logfile
echo "" >>logfile
sudo apt-get --purge autoremove >>logfile #Write on logfile the command output
sudo apt-get autoremove>>logfile #Write on logfile the command output
sudo apt-get autoclean>>logfile #Write on logfile the command output
sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') aptitude search '~c' -F '%p' | xargs -n 30 sudo aptitude -y purge>>logfile #Write on logfile the command output
echo "" >>logfile
echo "" >>logfile
fi
Αυτο εδω το κομματι δεν λειτουργει σωστα...Γνωριζω πως η while εκτελει τις εντολες ΜΟΝΟ οταν ειναι True..σε αυτο εδω το κομματι θελω να κανω ελεγχο ορθοτητας τιμων και δεν λειτουργει.
- Κώδικας: Επιλογή όλων
#cheak for correct entry
while [ "$epilogh" -ne "0" ] || [ "$epilogh" -ne "1" ] || [ "$epilogh" -ne "2" ]
do
if [ "$epilogh" = "0" ] ; then
echo "Bye"
exit
else
echo "Έχετε δώσει λάθος εντολή.Παρακαλώ πληκτρολογήστε την σωστή επιλογή ή το 0 για έξοδο"
read epilogh
fi
done
#end of cheak correct entry
μονο στο
- Κώδικας: Επιλογή όλων
while [ "$epilogh" -ne "0" ]
λειτουργει σωστα και αν δεν δωσω το 0 με βγαζει το μηνυμα οτι εχω δωσει λαθος τιμη..Τι κανω λαθος..(οι τελεστες ειναι διαφορετικη απο οσο νομιζα ) θα πρεπει να υπαρχει καποια θεωρια με τις παρενθεσεις που δεν ξερω στο Shell.
1 Linux: Μέτριο┃ Προγρ: Visual Basic,Java,CSS 3,HTML 5 ┃ Αγγλ: Καλά
2 Operating System:||Lubuntu 15.04|| CPU: Intel Core 2 Duo E7400 @ 2.80GHz, RAM: 4,00GB Dual-Channel DDR2 @ 333MHz, Motherboard: ASRock G41C-GS (CPUSocket),Graphics:2047MB NVIDIA GeForce GT 610 (Gigabyte)