tritonas00 Δημοσ. 2 Ιουνίου 2015 Share Δημοσ. 2 Ιουνίου 2015 Ενα απλο one liner που δειχνει γιορτες καθετα ωστε να μπορει να ενσωματωθει ευκολα σε conky, notifications κλπ wget -q -O- http://www.greeknamedays.gr/tools/eortologiorssfeed/index.php?langid=gr | grep -o " : .*" | cut -c 4- | cut -f1 -d"<" | sed 's/\, /\n/g' 5 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 11 Ιουνίου 2015 Share Δημοσ. 11 Ιουνίου 2015 Αν θυμάμαι καλά, μπορούμε με κάποιο τρόπο να εκτελούμε διαφορετικές εντολές με τα ίδια ορίσματα (; ) χωρίς να τα ξαναγράψουμε.Τι εννοώ. Να τρέξω πχ: cmd1 /path/to/a/file Και μετά χωρίς να ξαναγράψω το αρχείο (ή ότι άλλο), να δώσω απλά: {μια εντολή; ή ένα σύμβολο;} cmd2 Το οποίο θα μεταφραστεί σε: cmd2 /path/to/a/file Καλά θυμάμαι; Πως γίνεται; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 12 Ιουνίου 2015 Share Δημοσ. 12 Ιουνίου 2015 Μπορείς να κάνεις πολλές μαγκιές αλλά εξαρτάται τι θέλεις και πότε εκτελέστηκε η εντολή Με τα ^^ μπορείς να τρέξεις string substitution αλλά μόνο στην προηγούμενη εντολή % ls /usr/bin/ar /usr/bin/ar* % ^ls^dir dir /usr/bin/ar /usr/bin/ar* % ^ls^dir^ zsh: substitution failed Όπως βλέπεις την πρώτη φορά που το τρέχω παίζει σωστά ενώ την δεύτερη φορά όχι. Αυτό γίνεται γιατί δουλεύει μόνο με την τελευταία εντολή η οποία δεν έχει πουθενά ls (γιατί άλλαξε προηγουμένως και έγινε dir). Για να δουλέψει και με προηγούμενες καταχωρήσεις στο ιστορικό, μπορείς να χρησιμοποιήσεις το κλασικό ! % !ls:s/ls/dir/ dir /usr/bin/ar /usr/bin/ar* Το παραπάνω λέει ψάξε στο ιστορικό για την τελευταία εκτέλεση της εντολής ls (το !ls κομμάτι) και έπειτα άλλαξε (το :s) το ls σε dir οπότε θα παίζει ανεξάρτητα από το πόσο παλιά έτρεξες την εντολή cmd1. Στην δική σου περίπτωση θα γινόταν "!cmd1:s/cmd1/cmd2/". Απλά να θυμάσαι ότι αν έχεις τρέξει την cmd1 5 φορές με διαφορετικά ορίσματα, η αλλαγή και η εκτέλεση της cmd2 θα γίνει με το πιο πρόσφατο. % dir !ls:* dir /usr/bin/ar /usr/bin/ar* Το παραπάνω είναι μια παρόμοια μέθοδος που όμως λειτουργεί διαφορετικά. Αντί να τρέξει string substitution πάνω σε μια καταχώρηση του ιστορικού, εσύ δίνεις την εντολή που θέλεις να τρέξεις και απλά του λες να σου φέρει τα ορίσματα μιας προηγούμενης καταχώρησης. Οπότε ψάχνει για την εκτέλεση της εντολής ls, βρίσκει ότι τα ορίσματά της ήταν /usr/bin/ar και στο πετάει στην εντολή dir. Με αυτή τη μέθοδο, το δικό σου θα γινόταν "cmd2 !cmd1:*". Αν δεν θέλεις όλα τα ορίσματα αλλά μόνο κάποιο συγκεκριμένο, μπορείς να γράψεις τον αριθμό του αντί για τον αστερίσκο. Το 2ο είναι λίγο πιο απλό στην σύνταξη. Δοκίμασε τα και δες αν σε βολεύει κάποιο από τα δύο. 2 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ilias95 Δημοσ. 12 Ιουνίου 2015 Share Δημοσ. 12 Ιουνίου 2015 Άψογη απάντηση, όπως πάντα.Thank you! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
stratos_21 Δημοσ. 11 Ιουλίου 2015 Share Δημοσ. 11 Ιουλίου 2015 Ενα απλο one liner που δειχνει γιορτες καθετα ωστε να μπορει να ενσωματωθει ευκολα σε conky, notifications κλπ wget -q -O- http://www.greeknamedays.gr/tools/eortologiorssfeed/index.php?langid=gr | grep -o " : .*" | cut -c 4- | cut -f1 -d"<" | sed 's/\, /\n/g' Σωραίοςςςςς Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 11 Ιουλίου 2015 Share Δημοσ. 11 Ιουλίου 2015 για long list: wget -q -O- http://www.greeknamedays.gr/tools/eortologiorssfeed/index.php?langid=gr | grep -o "<description>.*" | tail -n1 | cut -c 14- | cut -f1 -d"<" | sed 's/\, /\n/g' Δειχνει ετσι Και ενα αλλο, για τον καιρο: wget -q -O- "http://rss.accuweather.com/rss/liveweather_rss.asp?metric=1&locCode=EUR|GR|LIXOURI" | grep -o "Currently:.*" | cut -c 12- | cut -f1 -d"<" Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
mask2011 Δημοσ. 11 Ιουλίου 2015 Share Δημοσ. 11 Ιουλίου 2015 Που βρήκες το rss για τον καιρό; Δεν το βρίσκω στο accuweather για να αλλάξω την τοποθεσία. Ας πουμε ότι θέλω αυτό http://www.accuweather.com/en/gr/dafni/176811/current-weather/176811#menu-country Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 11 Ιουλίου 2015 Share Δημοσ. 11 Ιουλίου 2015 Αντι LIXOURI βαλε DAFNI Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
mask2011 Δημοσ. 11 Ιουλίου 2015 Share Δημοσ. 11 Ιουλίου 2015 Ευχαριστώ Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
warlock9_0 Δημοσ. 15 Αυγούστου 2015 Share Δημοσ. 15 Αυγούστου 2015 γρήγορη ερώτηση έχω μια δομή από φακέλους, κάθε φάκελος περιέχει κάποια logs και κάποια scripts τα scripts χρησιμοποιούν relative paths για να διαβάζουν τα logs και να φτιαχνουν καινούρια αρχεία μέσα στον κάθε φάκελο αν τρέξω αυτά τα scripts από εξωτερικό script τι γίνεται με τα relative paths? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
ALLisCHAOS Δημοσ. 16 Αυγούστου 2015 Share Δημοσ. 16 Αυγούστου 2015 Aν πχ ένα από τα scripts σου με τα relative paths έχει κάτι τέτοιο #!/bin/bash touch New_logFile τότε αυτό τo αρχείο θα δημιουργηθεί στο pwd που θα είσαι όταν εκτελέσεις το εξωτερικό script Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 16 Αυγούστου 2015 Share Δημοσ. 16 Αυγούστου 2015 Μια μπακάλικη μέθοδος είναι πριν τρέξεις το script να μπαίνεις στον κατάλογο που πρέπει. Χωρίς cd % pwd /tmp % cat msg Hello % cat int.sh #!/bin/bash cat ./msg % cat ext1.sh #!/bin/bash /tmp/int.sh % ./ext1.sh Hello % cd / % /tmp/ext1.sh cat: ./msg: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος Ενώ μέσα στο /tmp παίζει σωστά, όταν βγούμε στο / δεν μπορεί να βρει το αρχείο με το relative path. Με cd % pwd / % cat /tmp/ext2.sh #!/bin/bash cd /tmp /tmp/int.sh % /tmp/ext2.sh Hello % cat /tmp/ext3.sh #!/bin/bash ( cd /tmp /tmp/int.sh ) % /tmp/ext3.sh Hello Το ext2.sh μπαίνει στον κατάλογο /tmp πριν τρέξει το εσωτερικό script οπότε παίζει σωστά. Οι υπόλοιπες εντολές που θα τρέξεις θα έχουν σαν working directory το /tmp αν δεν το αλλάξεις ξανά. Το ext3.sh κάνει το ίδιο ακριβώς πράγμα αλλά το κάνει με πιο δόκιμο τρόπο. Οι παρενθέσεις ορίζουν ότι οι εντολές θα εκτελεστούν σε ένα subshell χωρίς λοιπόν να επηρεάζουν τον υπόλοιπο κώδικα του εξωτερικού script. Αν έβαζα να εκτελεστεί ένα "pwd" στο τέλος, θα βλέπαμε ότι επιστρέφεται σαν working directory το / γιατί το cd έγινε μέσα στο subshell. Με αυτό το τρόπο "απομονώνεις" οτιδήποτε αλλαγές κάνεις για την εκτέλεση του int.sh από τον υπόλοιπο κώδικα. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
warlock9_0 Δημοσ. 16 Αυγούστου 2015 Share Δημοσ. 16 Αυγούστου 2015 μάλιστα, το ext3 με βολεύει λογικά γιατί μπορώ να τα καλώ όλα από ένα for χωρίς να πρέπει να κάνω κάθε φορα cd πίσω ευχαριστώ! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
tritonas00 Δημοσ. 21 Αυγούστου 2015 Share Δημοσ. 21 Αυγούστου 2015 Ενας gtkdialog τρεχει στο background ενα bash script. Θελω ενα κουμπακι που να σκοτωνει το script και τα παιδια που τρεχει. Κατεληξα σε αυτο: - Το bash script να σωζει το PID του σε ενα temp file - Ο gtkdialog να τρεχει το script με setsid - Οταν πατιεται το κουμπι κανει kill -9 -$(cat temp_αρχειο_με_το_PID) Δουλευει. Γινεται καλυτερα-πιο απλα? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
warlock9_0 Δημοσ. 11 Σεπτεμβρίου 2015 Share Δημοσ. 11 Σεπτεμβρίου 2015 ένα σκριπτ που έκανα για να φτιάξω τα tags στη μουσική μου γιατί μου είχαν σπάσει τα @@ γενικά όλη μου η μουσική είναι σε φακέλους artist -> album -> filename από αυτή τη δομή πήρα και έβαλα τα tags παίρνει είσοδο το φάκελο που έχει μουσική και τα υπόλοιπα όπως είπα πριν #!/bin/bash find "$1" -iname "*.mp3" -print0 -o -iname "*.wma" -print0 | while IFS= read -r -d $'\0' file; do if [ -f "$file" ] then filename="$(readlink -f "$file")" base=$(basename "$filename") title="${base%.mp3}" artist="$(echo "$filename" | awk -F'/' '{ print $(NF-2)}')" album="$(echo "$filename" | awk -F'/' '{ print $(NF-1)}')" eyeD3 -b "$artist" -t "$title" -a "$artist" -A "$album" "$file" fi done 2 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα