Καλησπέρα και χρόνια πολλά.
Έχω εδώ και λίγο καιρό ξεκινήσει να ασχολούμαι με προγραμματισμό και μαθαίνω για τη δουλειά να γράφω scripts σε perl για να αυτοματοποιώ ορισμένες διεργασίες.
Είμαι σε περιβάλλον Mac Os Χ αλλά χρησιμοποιώ terminal και αν κάποιο πρόγραμμα δεν υπάρχει κάνω εγκατάσταση.
προσπαθώ να ορίσω σε μια μεταβλητή που να μπορώ να τη χρησιμοποιώ σε όλο το script το path του Desktop, ώστε το script να φτιάχνει φακέλους, να γράφει σε αυτούς αρχεία και μετά να τα ξεgz και να τα διαβάζει.
διάβασα ότι αυτό θα έπρεπε να γίνεται έτσι:
και το φτιάχνει...ΤΟ ΕΡΩΤΗΜΑ ΕΙΝΑΙ:Κώδικας:use File::Path; use warnings; use strict; #my $path = $ENV{'USERPROFILE'}; <--- αυτό παίζει μόνο για windows based;;; my $path = $ENV{HOME}; my $desktop_path = "$path/Desktop"; my $PeakDir = "$desktop_path/BioProject"; mkpath($PeakDir);
τι γίνεται στοτι ακριβώς κάνει;Κώδικας:$ENV{HOME};
και γιατί τοδεν δουλεύει είναι γιατί παίζει μόνο σε windows based;;;Κώδικας:$ENV{'USERPROFILE'};
ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ
Εμφάνιση 1-7 από 7
-
31-12-11, 19:46 κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #1
-
01-01-12, 01:30 Απάντηση: κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #2
Καλησπέρα και καλή χρονιά.
Το %ENV είναι ένα hash που περιέχει τις μεταβλητές περιβάλλοντος και τις τιμές τους.
Τρέχοντας π.χ. το παρακάτω script
Κώδικας:#!/usr/bin/perl use warnings; use strict; for my $key ( keys %ENV ) { my $value = $ENV{$key}; print "$key => $value\n"; }
NetBSD Rocks!
http://www.netbsd.org
-
02-01-12, 22:24 Απάντηση: κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #3
-
03-01-12, 01:35 Απάντηση: κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #4
Αυτές οι μεταβλητές περιβάλλοντος (και οι τιμές τους), ορίζονται από το εκάστοτε σύστημα. Όταν για παράδειγμα ανοίγεις μια κονσόλα σε windows ή linux (ή σε Mac OS X), οι μεταβλητές αυτές προϋπάρχουν και συνήθως ορίζονται και παίρνουν τιμές κατά το booting του υπολογιστή.
Με τον κώδικα που παρέθεσα, μπορείς να πάρεις το όνομα ($key) και την τιμή ($value).
Hash είναι γενικά μια κατηγορία μεταβλητών της perl (όπως π.χ. μια άλλη κατηγορία είναι τα arrays).
Πάντως , καλό θα είναι να διαβάσεις κάποια από τα άπειρα tutorials και intros που υπάρχουν για την perl. Εκεί θα καταλάβεις τις αρχές της γλώσσας και θα λύσεις τις περισσότερες απορίες σου.NetBSD Rocks!
http://www.netbsd.org
-
03-01-12, 17:37 Απάντηση: κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #5
Οπότε με το ENV ουσιαστικά καλούμε σταθερές οι οποίες διευκρινίζονται στο {}.
Ποια η διαφορά μεταξύ του $ % είναι ότι το ένα ορίζει array και το άλλο hash;
το script το έτρεξα και έλαβα τα εξής:
Κώδικας:HOME => /Users/sunta3iouxos DISPLAY => /tmp/launch-3oDfNZ/org.macosforge.xquartz:0 COMMAND_MODE => unix2003 ORG_CHROMIUM_CHROMIUM_FRAMEWORK_SERVICE_PROCESS/USERS/SUNTA3IOUXOS/LIBRARY/APPLICATION_SUPPORT/CHROMIUM_SOCKET => /tmp/launch-mBhUt9/ServiceProcessSocket SSH_AUTH_SOCK => /tmp/launch-b1i1Fv/Listeners Apple_PubSub_Socket_Render => /tmp/launch-5wj9hs/Render PWD => /Users/sunta3iouxos LANG => el_GR.UTF-8 USER => sunta3iouxos LOGNAME => sunta3iouxos __CF_USER_TEXT_ENCODING => 0x1F5:6:20 SECURITYSESSIONID => 24abf2 TERM_PROGRAM => Apple_Terminal SHLVL => 1 _ => /opt/local/bin/perl TERM_PROGRAM_VERSION => 273.1 PATH => /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/X11/bin SHELL => /bin/bash TMPDIR => /var/folders/nY/nYCsY4IpGBicNgfTPKXbI++++TI/-Tmp-/ TERM => xterm-color
Ποια άλλη χρησιμότητα μπορεί να έχει από το να εισάγω πχ την διεύθυνση του home φακέλου σε μεταβλητή;;
υπάρχει και αυτό, που τώρα το είδα:
http://en.wikipedia.org/wiki/Environment_variableΤελευταία επεξεργασία από το μέλος trotos : 04-01-12 στις 16:33.
-
04-01-12, 16:36 Απάντηση: κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #6
Άσχετο, αλλά τσέκαρες αν μπορούν να γίνουν αυτά που θέλεις με τον Automator; Τουλάχιστον αυτά που περιγράφεις γίνονται πανεύκολα.
-
04-01-12, 17:52 Απάντηση: κατασκευή φακέλου στην perl ανεξαρτήτως χρήστη. #7
δε με ενδιαφέρει, θέλω να φτιάξω ένα script που να δουλεύει όσο το δυνατόν σε περισότερα unix/;inux based μηχανήματα. Όταν θα ολοκληρωθεί θα πάει να τρέξει σε cluster και θα γίνει από άλλον optimized για multi-core-thread-big-mem και δε ξέρω τι άλλο.
Απλά πρέπει να φτιάξω μόνος τον βασικό σκελετό για να μάθω.
Παρόμοια Θέματα
-
Εργασία στην perl sos
Από kontras στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 3Τελευταίο Μήνυμα: 26-05-10, 23:40 -
Άσκηση στην perl απορία
Από kontras στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 11Τελευταίο Μήνυμα: 01-04-10, 10:07 -
ΠΡΩΤΑΡΑ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ PC
Από marina6 στο φόρουμ Συνθέσεις Η/Υ και αναβαθμίσειςΜηνύματα: 28Τελευταίο Μήνυμα: 06-10-08, 14:10 -
Απορίες στην κατασκευή site
Από Knorcedger στο φόρουμ Web authoring, development & web designΜηνύματα: 12Τελευταίο Μήνυμα: 13-05-04, 01:45
Bookmarks