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

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

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

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

Δημοσίευσηαπό Ilias95 » 12 Ιουν 2014, 00:28

Ναι αλλά δεν ξέρουμε πως ακριβώς εκτελείται το desktop entry και από τι. Το ~ γίνεται expand απ' το εκάστοτε shell και αντικαθίσταται απ' την τρέχουσα τιμή της $HOME πριν εκτελεστεί η εντολή απ' το shell. Δεν σημαίνει ότι το ~ θα δουλεύει παντού και ότι θα αντικαθίσταται.

Γενικά αν ψάξεις και στο google θα πέσεις σε διάφορες συζητήσεις και για μένα και οι δύο πλευρές έχουν valid points.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό eliasps » 15 Ιουν 2014, 01:55

Γεια σε όλους!

Θα χρειαστώ τη βοήθειά σας για την δημιουργία ενός script που θα συγχωνεύει το περιεχόμενο κάποιων φακέλων.
Να εξηγήσω αναλυτικά:
Έχω στον υπολογιστή έναν φάκελο, ας τον ονομάσουμε ΑρχικόςΦάκελος που περιέχει 100 φακέλους και κάθε ένας από αυτούς τους 100, περιέχει μέσα 4 υποφακέλους.
Αυτοί οι 4 έχουν διαφορετικά ονόματα μεταξύ τους, αλλά είναι κοινοί για κάθε έναν από τους 100 φακέλους. Φανταστείτε δηλαδή κάτι τέτοιο:
Μορφοποιημένος Κώδικας: Επιλογή όλων
eliasps@ubuntu:~$ ls ΑρχικόςΦάκελος/
Φάκελος-1-από-100
Φάκελος-2-από-100
Φάκελος-3-από-100
.....
Φάκελος-100-από-100

Μορφοποιημένος Κώδικας: Επιλογή όλων
eliasps@ubuntu:~$ ls ΑρχικόςΦάκελος/Φάκελος-1-από-100/
Υποφάκελος 1
Υποφάκελος 2
Υποφάκελος 3
Υποφάκελος 4
eliasps@ubuntu:~$ ls ΑρχικόςΦάκελος/Φάκελος-2-από-100/
Υποφάκελος 1
Υποφάκελος 2
Υποφάκελος 3
Υποφάκελος 4
eliasps@ubuntu:~$ ls ΑρχικόςΦάκελος/Φάκελος-3-από-100/
.........
.........
.........
.........
eliasps@ubuntu:~$ ls ΑρχικόςΦάκελος/Φάκελος-100-από-100/
Υποφάκελος 1
Υποφάκελος 2
Υποφάκελος 3
Υποφάκελος 4

Κάθε ένας από αυτούς 4 υποφακέλους που υπάρχουν μέσα στους 100, περιέχει ένα εικονίδιο.

Έχω δημιουργήσει στην επιφάνεια εργασίας μου 4 φακέλους με τα ονόματα των 4 υποφακέλων:
Κώδικας: Επιλογή όλων
mkdir Desktop/Υποφάκελος 1
mkdir Desktop/Υποφάκελος 2
mkdir Desktop/Υποφάκελος 3
mkdir Desktop/Υποφάκελος 4


Αυτό που θέλω να κάνει το script είναι να πηγαίνει σε κάθε έναν από τους 100 φακέλους που βρίσκονται στον αρχικό, να παίρνει το εικονίδιο από τον Υποφάκελο 1 και να το μετακινεί στον Υποφάκελο 1 που βρίσκεται στην επιφάνεια εργασίας. Το ίδιο και για τους υπόλοιπους 3, σε κάθε έναν από τους 100.

Ελπίζω να έγινα κατανοητός.
Κάθε βοήθεια ευπρόσδεκτη.

Ευχαριστώ εκ των προτέρων,
Ηλίας

EDIT:
Το έκανα με αυτόν τον τρόπο τελικά, αν και ήμουν σίγουρος πως υπήρχε κάτι καλύτερο:
Μορφοποιημένος Κώδικας: Επιλογή όλων
for folder in /home/elias/ΑρχικόςΦάκελος/*; do
cd "$folder" ;
cd "Υποφάκελος 1" ;
mv * /home/elias/Desktop/"Υποφάκελος 1" ;
cd .. ;
cd "Υποφάκελος 2" ;
mv * /home/elias/Desktop/"Υποφάκελος 2" ;
cd .. ;
cd "Υποφάκελος 3" ;
mv * /home/elias/Desktop/"Υποφάκελος 3" ;
cd .. ;
cd "Υποφάκελος 4" ;
mv * /home/elias/Desktop/"Υποφάκελος 4" ;
cd .. ;
cd .. ;
done
Άβαταρ μέλους
eliasps
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4017
Εγγραφή: 16 Δεκ 2011, 22:25
Τοποθεσία: Αθήνα, Αττική
Launchpad: eliasps
IRC: eliasps
Εκτύπωση

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

Δημοσίευσηαπό fkol k4 » 15 Ιουν 2014, 02:21

Καλησπέρα (καλημέρα;;;) Ηλία.

Αν έχω καταλάβει καλά τι ζητάς, πρέπει να σου αρκεί και αυτό:
Μορφοποιημένος Κώδικας: Επιλογή όλων
for folder in /path/to/ΑρχικόςΦάκελος/* ; do
cp -r /path/to/ΑρχικόςΦάκελος/"Sfolder"/Υποφάκελος* ~/Desktop/
done

Με την cp -r δεν διαγράφεται ο υπάρχων φάκελος, αλλά συγχωνεύονται τα περιεχόμενα.
Γνώσεις: Linux: ★★★☆☆ Προγραμματισμός: ★☆☆☆☆ Αγγλικά: ★★★★★
Η υπογραφή μου
Οδηγίες για αρχάριους στο Ubuntu (12.04 LTS)Οδηγοί του forum
Άβαταρ μέλους
fkol k4
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4829
Εγγραφή: 28 Φεβ 2011, 22:56
Τοποθεσία: Αθήνα
Launchpad: fkol-k4
IRC: fkol_k4
Εκτύπωση

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

Δημοσίευσηαπό eliasps » 15 Ιουν 2014, 02:52

Γεια σου Φίλιππε!

Ναι αυτό ακριβώς ζητάω, αλλά για 4 υποφακέλους, δηλαδή:
Μορφοποιημένος Κώδικας: Επιλογή όλων
for folder in /path/to/ΑρχικόςΦάκελος/* ; do
cp -r /path/to/ΑρχικόςΦάκελος/"Sfolder"/Υποφάκελος1 ~/Desktop/
cp -r /path/to/ΑρχικόςΦάκελος/"Sfolder"/Υποφάκελος2 ~/Desktop/
cp -r /path/to/ΑρχικόςΦάκελος/"Sfolder"/Υποφάκελος3 ~/Desktop/
cp -r /path/to/ΑρχικόςΦάκελος/"Sfolder"/Υποφάκελος4 ~/Desktop/
done

Θα αποθηκεύσω το παραπάνω, γιατί έχω την εντύπωση πως θα το χρειαστώ ξανά σύντομα.

Εύχαριστώ πολύ! ;)
Άβαταρ μέλους
eliasps
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4017
Εγγραφή: 16 Δεκ 2011, 22:25
Τοποθεσία: Αθήνα, Αττική
Launchpad: eliasps
IRC: eliasps
Εκτύπωση

Μετατροπή RPM packages σε DEB και αντίστροφα (shell script)

Δημοσίευσηαπό lightspot21 » 01 Ιούλ 2014, 13:26

Αυτό είναι ένα script με τη χρήση του οποίου απλοποιείται η διαδικασία μετατροπής ένος πακέτου DEB σε RPM και αντίστροφα. Χρειάζεται το alien για να λειτουργήσει και είναι το πρώτο μου shell script ;-)

Αρκετή φλυαρία όμως, ώρα για κώδικα!
Κώδικας: Επιλογή όλων
#!/bin/bash
# Αυτό το script μετατρέπει, με χρήση του alien, πακέτα RPM σε DEB και αντιστρόφως
# Χρειάζεται τα: alien, fakeroot(προαιρετικό)

# Διαδικασία επιλογής μετατροπής 

clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo [1] - RPM to DEB conversion
echo [2] - DEB to RPM conversion
echo [3] - Credits
echo [4] - Quit
echo
echo Enter your choice: #
read x #

# Mετατροπή RPM σε DEB

if [ $x -eq 1 ];then
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Specify the full filename of the RPM package to convert: #
read y #
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Enter the root password:
sudo alien $y
echo Conversion completed successfully.
fi

# Μετατροπή DEB σε RPM

if [ $x -eq 2 ];then
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Specify the full filename of the DEB package to convert: #
read z #
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Enter the root password:
sudo alien --to-rpm $z
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Conversion completed successfully.
fi

# Περί του προγράμματος ;-)

if [ $x -eq 3 ];then
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Script developed by Grigoris Pavlakis "(lightspot21)"
echo "If you have any problems, don't hesitate to PM me on"
echo "ubuntu-gr :-)"
fi

# Διαδικασία εξόδου

if [ $x -eq 4 ];then
clear
echo DebConvert ----- RPM <--> DEB package conversion has never been easier
echo Created by Grigoris Pavlakis "(lightspot21)" - Version 0.2
echo
echo Exiting...
sleep 3
clear
exit
fi

Εάν υπάρχουν απορίες παρακαλώ στείλτε μου ΠΜ ή καλύτερα απαντήστε κάτω από το θέμα.
Το script θα ενημερώνεται συχνά, γι' αυτό μείνετε συντονισμένοι! :D

ΤΟDO:
Spoiler: show
Μετατροπή και σε άλλες μορφές πακέτων
Δυνατότητα συμπερίληψης των preinstall και postinstall scripts (επιλογή alien --scripts)


ΠΡΟΣΟΧΗ: O δημιουργός του παραπάνω script (lightspot21) ουδεμία ευθύνη φέρει σε περίπτωση απώλειας δεδομένων ή οιασδήποτε ζημίας που πιθανόν προκληθεί από τη χρήση του εν λόγω κώδικα.

EDIT: Μπορείτε να κατεβάσετε την πιο τελευταία έκδοση του κώδικα από εδώ:http://pastebin.ubuntu-gr.org/pastebin.php?dl=fd9bdf8d
1) Γνώσεις Linux: ★★★☆☆ ┃ Προγραμματισμού: ★★☆☆☆ ┃ Αγγλικών: ★★★★☆

2) Ubuntu 14.04 trusty 3.16.0-38-generic 64bit (el_GR.UTF-8, MATE mate), Ubuntu 3.16.0-33-generic

3) Intel Pentium Dual CPU T3200 2.00GHz ‖ RAM 3810 MiB ‖ clevo M765S

4) SiS 771/671 PCIE VGA Display Adapter [1039:6135] {}

5) eth0: SiS 191 Gigabit Ethernet Adapter [1039:0191] (rev 02)
wlan0: 0bda:8189 Realtek RTL8187B Wireless 802.11g 54Mbps Network Adapter
Άβαταρ μέλους
lightspot21
babeTUX
babeTUX
 
Δημοσιεύσεις: 34
Εγγραφή: 14 Απρ 2013, 19:57
Εκτύπωση

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

Δημοσίευσηαπό spyroskaftanis » 07 Οκτ 2014, 16:59

Χρήση zenity --password εκτός τερματικού!


Καλησπέρα. Θα χρειαστώ τη βοήθειά σας για κάτι που με παιδεύει πολύ καιρό. Έστω ότι έχω κάτι σαν το παρακάτω:

Κώδικας: Επιλογή όλων
PASSWD="$(zenity --password --title=Authentication)\n"
echo $PASSWD | sudo -S cp Program /usr/bin


Το script εμφανίζει κανονικά τον διάλογο στον οποίο βάζω κωδικό ,αλλά η δεύτερη εντολή εκτελείται κανονικά μόνο όταν τρέχω το script από το τερματικό. Όταν το τρέχω με διπλό κλικ ο κωδικός προφανώς δεν περνάει στο sudo και έτσι δεν εκτελείτε τίποτα.
Έχετε κάτι να μου προτείνετε ώστε να δουλεύει και χωρίς τερματικό? :/
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

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

Δημοσίευσηαπό Learner » 08 Οκτ 2014, 00:09

Για δοκίμασε
Κώδικας: Επιλογή όλων
#!/usr/bin/env bash
export DISPLAY=:0.0
PASSWD=$(zenity --password --title=Authentication)
echo $PASSWD | sudo -S cp Program /usr/bin/
exit 0
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9765
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

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

Δημοσίευσηαπό spyroskaftanis » 08 Οκτ 2014, 01:05

Μπα. Δεν ένιωσε!
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

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

Δημοσίευσηαπό Learner » 08 Οκτ 2014, 03:51

Εμένα «ένιωσε» όμως οπότε,
τσέκαρε μήπως φταίνει το application.desktop που έχεις φτιάξει.
About Me
NickTux@GitHub

Spoiler: show
1. Ubuntu 18.04 LTS
2. Intel Core i3 CPU M 380 2.53GHz ‖ RAM 6GB ‖ Acer Aspire 5733
3. Intel Integrated Graphics [8086:0046] {i915}
4. wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01)
Άβαταρ μέλους
Learner
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 9765
Εγγραφή: 08 Νοέμ 2010, 21:24
Τοποθεσία: Αθήνα
Launchpad: nicktux
IRC: NickTux
Εκτύπωση

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

Δημοσίευσηαπό spyroskaftanis » 08 Οκτ 2014, 11:50

Learner έγραψε:Εμένα «ένιωσε» όμως οπότε,
τσέκαρε μήπως φταίνει το application.desktop που έχεις φτιάξει.


Γιατί χρειάζεται .desktop σε αυτή τη περίπτωση, εφόσον δε θέλω να εγκαταστήσω το script?
Για να σου εξηγήσω καλύτερα τι θέλω να κάνω, έχω ένα c++ προγραμματάκι με qt και όταν κλικάρω κάποιο κουμπί καλώ το script μέσω της system(). Οπότε το script ενεργοποιείται τότε·δε το εξήγησα καλά πριν.
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

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

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

cron