Τα πάντα για το Bash...

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό clepto » 29 Αύγ 2011, 00:19

πάλι τίποτα...
εσένα δουλεύει έτσι;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό medigeek » 29 Αύγ 2011, 01:01

Ξανακοιτάζοντας τον κώδικα, δεν υπάρχει λόγος για το elif, μιας και ήδη ελέγχεις με το if για -s (nonzero).
Δεν υπάρχει άλλη πιθανή περίπτωση εκτός από το να μην είναι -s (nonzero), οπόταν χρησιμοποιείς απλά το else:
Κώδικας: Επιλογή όλων
if [ -s .crypt_list_open ]; then
cat .crypt_list_open
else
printf "Δεν περιέχει ονόματα"
fi


clepto έγραψε:εσένα δουλεύει έτσι;


Χάριν παραδείγματος, αυτό δουλεύει :)
Κώδικας: Επιλογή όλων
if [ -s .crypt_list_open ]; then
cat .crypt_list_open
elif [ ! -s .crypt_list_open ]; then
printf "Δεν περιέχει ονόματα"
fi


Αν πάλι δεν κάνει αυτό που θες, μήπως δεν χρησιμοποιείς σωστά το -s;
Με το -s ελέγχει αν το αρχείο είναι nonzero μεγέθους:
* Αν περιέχει κάτι το αρχείο (εδώ χαρακτήρες), τότε το αρχείο είναι nonzero.
* Αν δεν περιέχει τίποτα (απολύτως τίποτα) και το μέγεθος του είναι zero, τότε δεν είναι nonzero.

http://linuxconfig.org/Bash_scripting_Tutorial
έγραψε:
11. Bash File Testing
-b filename Block special file
-c filename Special character file
-d directoryname Check for directory existence
-e filename Check for file existence
-f filename Check for regular file existence not a directory
-G filename Check if file exists and is owned by effective group ID.
-g filename true if file exists and is set-group-id.
-k filename Sticky bit
-L filename Symbolic link
-O filename True if file exists and is owned by the effective user id.
-r filename Check if file is a readable
-S filename Check if file is socket
-s filename Check if file is nonzero size
-u filename Check if file set-ser-id bit is set
-w filename Check if file is writable
-x filename Check if file is executable



Παραδείγματα:

Σωστό: Διαγράφοντας και ξαναδημιουργώντας το αρχείο:
έγραψε:$ rm -f moo
$ touch moo

$ ls -l moo
-rw-r--r-- 1 sav sav 0 2011-08-28 23:55 moo
$ # Πρόσεξε τον αριθμό μηδέν στο αποτέλεσμα
$ [ -s moo ] && echo "File is non-zero, contains characters" || echo "File is empty"
File is empty


Λάθος: Με το echo δεν αδειάζεις τελείως το αρχείο:
έγραψε:$ echo "" > moo

$ ls -l moo
-rw-r--r-- 1 sav sav 1 2011-08-28 23:55 moo
$ # Πρόσεξε τον αριθμό ένα στο αποτέλεσμα
$ [ -s moo ] && echo "File is non-zero, contains characters" || echo "File is empty"
File is non-zero, contains characters
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό clepto » 29 Αύγ 2011, 01:05

και πάλι αυτό που είπες ότι δουλεύει εμένα δεν δουλεύει !:@#@%$#% :evil: :twisted: :-x :-x :twisted: :evil:
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό medigeek » 29 Αύγ 2011, 01:22

Δώσε:
Κώδικας: Επιλογή όλων

pwd
ls -l .crypt_list_open
[ -s .crypt_list_open ] && echo "File is non-zero, contains characters" || echo "File is empty"
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό clepto » 29 Αύγ 2011, 01:24

Κώδικας: Επιλογή όλων
chris@chris-Aspire-5732Z:~$ pwd
/home/chris
chris@chris-Aspire-5732Z:~$ ls -l .crypt_list_open
-rw-r--r-- 1 chris chris 81 2011-08-29 01:06 .crypt_list_open
chris@chris-Aspire-5732Z:~$
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό medigeek » 29 Αύγ 2011, 01:42

Το αρχείο έχει μέγεθος 81 οπόταν:
Κώδικας: Επιλογή όλων
if [ -s .crypt_list_open ]; then
echo "This file has data"
elif [ ! -s .crypt_list_open ]; then
echo "This file does not have data"
fi


..πρέπει να εμφανίσει "This file has data".

Αν διαγράψεις το αρχείο και το δημιουργήσεις με touch:
Κώδικας: Επιλογή όλων
rm .crypt_list_open
touch .crypt_list_open

..δε θα περιέχει δεδομένα.

Εσένα πού ακριβώς δε δουλεύει; Συνεχίζουμε αύριο. :)
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό clepto » 29 Αύγ 2011, 01:45

πάλι το ίδιο...πάντα βγάζει ότι δε έχει τίποτα...
εντάξει! καλό βράδυ, ευχαριστώ! :)
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό medigeek » 29 Αύγ 2011, 01:52

Για να συνεννοηθούμε:
Εκτέλεσε με copy-paste αυτό που έδωσα προηγουμένως: viewtopic.php?p=204618#p204618
Σου δίνει "This file has data" ή "This file does not have data";
Για να υπάρχει το αρχείο στο ls με μέγεθος 81, στον ίδιο φάκελο θα σου δίνει "This file has data".
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό clepto » 29 Αύγ 2011, 01:57

copy paste και μου δινει This file does not have data...
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για το Bash...

Δημοσίευσηαπό medigeek » 29 Αύγ 2011, 10:36

Αποκλείεται. :P
Δώσε:
Κώδικας: Επιλογή όλων
ls -l .crypt_list_open
rm .crypt_list_open
touch .crypt_list_open
if [ -s .crypt_list_open ]; then
echo "This file has data"
elif [ ! -s .crypt_list_open ]; then
echo "This file does not have data"
fi
ls -l .crypt_list_open


Κώδικας: Επιλογή όλων
echo "test" > .crypt_list_open
if [ -s .crypt_list_open ]; then
echo "This file has data"
elif [ ! -s .crypt_list_open ]; then
echo "This file does not have data"
fi
ls -l .crypt_list_open
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron