sudo μπορείς να δώσεις σε ένα χρήστη για να τρέχει αποκλειστικά μία εντολή, χωρίς να δίνει password (εφόσον πρόκειται να χρησιμοποιηθεί μέσα σε script).
Εμφάνιση 1.486-1.500 από 2203
Θέμα: Ερώτηση για bash
-
04-01-21, 18:35 Απάντηση: Ερώτηση για bash #1486NetBSD Rocks!
http://www.netbsd.org
-
13-01-21, 15:52 Απάντηση: Ερώτηση για bash #1487
Εστω οτι εχω την παρακατω δομη σε ενα φακελο
Κώδικας:. ├── Futurama.S04E01.mp4 ├── Futurama.S04E02.mp4 ... └── Subs ├── Futurama.S04E01 │ └── 2_English.srt ├── Futurama.S04E02 │ └── 2_English.srt ...
ديميتريس
-
13-01-21, 21:58 Απάντηση: Ερώτηση για bash #1488Κώδικας:
mv Subs/*/*.srt .
-
13-01-21, 22:02 Απάντηση: Ερώτηση για bash #1489
Αν όλα έχουν όνομα 2_English.srt δεν θα του τα κάνει overwrite και θα μείνει μόνο το τελευταίο; Ή δεν κατάλαβα κάτι σωστά;
Κώδικας:% tree ├── Futurama.S04E01.mp4 ├── Futurama.S04E02.mp4 └── Subs ├── Futurama.S04E01 │ └── 2_English.srt └── Futurama.S04E02 └── 2_English.srt 3 directories, 4 files % for i in *mp4; do FF=$(basename ${i} .mp4) echo Processing ${FF} if [ -e ./Subs/${FF}/2_English.srt ]; then echo mv -v ./Subs/${FF}/2_English.srt ${FF}.srt fi done Processing Futurama.S04E01 mv -v ./Subs/Futurama.S04E01/2_English.srt Futurama.S04E01.srt Processing Futurama.S04E02 mv -v ./Subs/Futurama.S04E02/2_English.srt Futurama.S04E02.srt
Τελευταία επεξεργασία από το μέλος imitheos : 13-01-21 στις 22:34.
"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
13-01-21, 22:50 Απάντηση: Ερώτηση για bash #1490
-
13-01-21, 23:35 Απάντηση: Ερώτηση για bash #1491
-
13-01-21, 23:57 Απάντηση: Ερώτηση για bash #1492
Το script για κάθε mp4 αρχείο, αφαιρεί την κατάληξη .mp4, ψάχνει αν υπάρχει αρχείο 2_English.srt μέσα στον κατάλογο ./Subs/όνομα του mp4/ και το μετονομάζει σε "όνομα του mp4.srt". Όπως λέει και το echo που έβαλα, το αρχείο ./Subs/Futurama.S04E01/2_English.srt θα μετονομαστεί σε Futurama.S04E01.srt (στον κατάλογο που τρέχει το script δηλαδή εκεί που είναι και το mp4). Αυτό δεν είναι το ίδιο όνομα με το Futurama.S04E01.mp4;
Μάλλον δεν κατάλαβα τι πρέπει να γίνει."I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
14-01-21, 07:55 Απάντηση: Ερώτηση για bash #1493
Καλα τα λες. Απο αυτο το layout που λεω παραπανω, θελω να παω σε αυτο
Κώδικας:. ├── Futurama.S04E01.mp4 ├── Futurama.S04E01.srt ├── Futurama.S04E02.mp4 ├── Futurama.S04E02.srt
---edit
Δουλεψε, αν και το εκανα με cp. Επισης, μηπως δεν θελει το echo στα bold?
Εβγαλα και τη γραμμη για το processing, μιας και ειναι πλεονασμος οταν τρεχει το cp/mv με -v, οποτε βλεπω ετσι κι αλλιως τι γινεται.
Κώδικας:for i in *mp4; do FF=$(basename ${i} .mp4) echo Processing ${FF} if [ -e ./Subs/${FF}/2_English.srt ]; then echo mv -v ./Subs/${FF}/2_English.srt ${FF}.srt fi done
Τελευταία επεξεργασία από το μέλος jim_p : 14-01-21 στις 09:36.
ديميتريس
-
14-01-21, 15:13 Απάντηση: Ερώτηση για bash #1494
-
14-01-21, 15:15 Απάντηση: Ερώτηση για bash #1495
Γιατί δεν έγραψα κάποια δόκιμη εκδοχή αλλά μια χακιά στα γρήγορα. Μου ήταν λοιπόν πιο εύκολο να αρχίσω με το Futurama.S04E01 και να του πω κάνε δουλειά με το /foo/bar/Futurama.S04E01/etc/ktl/English.srt, παρά να αρχίσω με ένα ολόκληρο μακρυνάρι /foo/bar/Futurama.S04E01/etc/ktl/English.srt και να του πω προγραμματιστικά κόψε τόσο από την αρχή, κόψε τόσο από το τέλος και παράγαγε το σκέτο Futurama.S04E01.
Επίτηδες έβαλα το echo ώστε να _μην_ κάνει mv αλλά να δεις τι σου βγάζει μήπως και το layout σου είναι διαφορετικό και δεν παίζει όπως το σκέφτηκα. Εννοείται ότι έπρεπε να φύγει."I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
21-01-21, 17:10 Απάντηση: Ερώτηση για bash #1496
Υπάρχει τρόπος να δημιουργήσω ένα χρήστη που να μπορεί να συνδεθεί στην κονσόλα αλλά όχι απομακρυσμένα, πχ με ssh;
-
21-01-21, 17:33 Απάντηση: Ερώτηση για bash #1497"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
-
21-01-21, 21:34 Απάντηση: Ερώτηση για bash #1498
-
24-01-21, 08:28 Απάντηση: Ερώτηση για bash #1499
Θελω να διορθωσω κατι σκριπτακια ενος τυπου και θελω τα φωτα σας
1) Εδω περα, το αρχειο smv δεν θα μετονομαστει σε bin οταν αντιγραφει? Δεν θελει και ενα "/" στο τελος?
Κώδικας:sudo cp "smv" "/usr/bin"
Κώδικας:if [[ ! -f "/usr/bin/smv" ]]; then echo "error: Could not find SmartVersion executable in /usr/bin." exit 1 fi
Κώδικας:"/usr/bin/env" "smv" x $1 -br .
ديميتريس
-
24-01-21, 13:15 Απάντηση: Ερώτηση για bash #1500
Αν δεν υπάρχει ο κατάλογος bin, τότε ναι. Στην πλειοψηφία των περιπτώσεων που ο κατάλογος /usr/bin υπάρχει, τότε θα αντιγραφεί μέσα στον κατάλογο με όνομα smv όπως αν είχες βάλει το / στο τέλος.
Ένας τρόπος να το κάνεις είναι να χρησιμοποιήσεις τις εντολές που "ψάχνουν" που βρίσκεται ένα εκτελέσιμο. Κάποιες είναι η env που ανέφερες (αν και ο κύριος σκοπός της δεν είναι αυτός), η which, η command, κτλ
Κώδικας:% command -v ls alias ls='/bin/ls ${=LS_OPTIONS}' % command -v -p ls /bin/ls
Κώδικας:% if ! command -v ls > /dev/null; then > echo 1 - ls not found > fi (Δεν εμφανίζει τίποτα) % if ! command -v smv > /dev/null; then echo 1 - smv not found fi 1 - smv not found
Κώδικας:if ! command -v smv > /dev/null; then echo "error: Could not find SmartVersion executable in $PATH." exit 1 fi
Όπως γνωρίζεις, αν η πρώτη γραμμή ενός script έχει το #!τάδε, αυτό σημαίνει ότι το script θα τρέξει αυτόματα μέσω του εκτελέσιμου τάδε. Με αυτό τον τρόπο γλυτώνεις να γράφεις "perl τάδε" ή "python δείνα" ή "bash τάδε" αλλά γράφεις σκέτο ./τάδε.
Τι γίνεται όμως αν δεν ξέρεις που είναι το εκτελέσιμο; Στο FreeBSD έχεις στο /bin και /usr/bin μόνο τα προγράμματα που υπάρχουν στο base σύστημα και τα υπόλοιπα βρίσκονται στο /usr/local οπότε δεν υπάρχει /bin/bash. Στο NetBSD έχεις /usr/pkg/bin/bash και πάει λέγοντας. Πώς λοιπόν θα γράψεις ένα script ώστε να παίζει και σε linux και σε BSD; Βάζεις #!/usr/bin/env bash και το σύστημα βρίσκει που είναι το bash και τρέχει το script.
"I like offending people, because I think people who get offended should be offended" - Linus Torvalds
"Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
Γα.... την πολιτική ορθότητα.
Παρόμοια Θέματα
-
Βοήθεια για ένα απλό bash script
Από AddictedToChaos στο φόρουμ Unix - LinuxΜηνύματα: 34Τελευταίο Μήνυμα: 22-07-11, 01:57 -
bash - matlab
Από simeon.mattes στο φόρουμ Unix - LinuxΜηνύματα: 25Τελευταίο Μήνυμα: 25-06-08, 23:00 -
Bash Script help (Αρχάριος)
Από weakwire στο φόρουμ Unix - LinuxΜηνύματα: 12Τελευταίο Μήνυμα: 08-05-07, 00:41 -
bash rename (mv)
Από hayzel στο φόρουμ Unix - LinuxΜηνύματα: 6Τελευταίο Μήνυμα: 07-01-07, 16:33
Bookmarks