Πώς να βρείτε τον κατάλογο όπου βρίσκεται ένα σενάριο Bash μέσα από το σενάριο

Pos Na Breite Ton Katalogo Opou Brisketai Ena Senario Bash Mesa Apo To Senario



Όταν εργάζεστε με σενάρια bash, είναι χρήσιμο να γνωρίζετε τη θέση του σεναρίου. Αυτό μπορεί να είναι ιδιαίτερα χρήσιμο όταν εργάζεστε με σχετικές διαδρομές αρχείων ή όταν προσπαθείτε να εκτελέσετε άλλα σενάρια ή εντολές μέσα από το σενάριο. Σε αυτό το άρθρο, θα ρίξουμε μια ματιά σε μερικούς διαφορετικούς τρόπους για τον προσδιορισμό του καταλόγου ενός σεναρίου bash μέσα από το ίδιο το σενάριο.

Πώς να βρείτε τον κατάλογο όπου βρίσκεται ένα σενάριο Bash μέσα από το σενάριο

Κατά τη δέσμη ενεργειών bash, ενδέχεται να απαιτήσετε τη θέση του σεναρίου για την αυτοματοποίηση διαφόρων εργασιών. Υπάρχουν δύο τύποι μονοπατιών στο Linux:

  • Διαδρομή συγγενών: Relative είναι ο τρέχων κατάλογος εργασίας.
  • Απόλυτη διαδρομή: Αυτή είναι η πλήρης διαδρομή του καταλόγου και των αρχείων.

Ένας από τους πιο συνηθισμένους τρόπους για να προσδιορίσετε τη θέση ενός σεναρίου bash είναι να χρησιμοποιήσετε το pwd εντολή. ο pwd εντολή ( εκτύπωση καταλόγου εργασίας) θα εμφανίσει τον τρέχοντα κατάλογο.







Έτσι, σε πολλές περιπτώσεις απλά χρησιμοποιώντας pwd Η εντολή δεν λειτουργεί καθώς δίνει μόνο τη διαδρομή του τρέχοντος καταλόγου που λειτουργεί.



Για παράδειγμα, εάν το σενάριο βρίσκεται στο Λήψεις κατάλογο και εκτελείται από το Επιφάνεια εργασίας τότε η έξοδος θα περιέχει το /home/usr/Desktop όχι τη θέση του αρχείου σεναρίου bash δηλαδή /home/usr/Λήψεις .



Αυτό το σεμινάριο αφορά τη λήψη της διαδρομής του καταλόγου στον οποίο βρίσκεται το αρχείο δέσμης ενεργειών bash μέσα από το σενάριο.





Πώς να βρείτε τη διαδρομή καταλόγου όπου βρίσκεται το αρχείο σεναρίου Bash

Ένας άλλος τρόπος για να προσδιορίσετε τον κατάλογο ενός σεναρίου Bash είναι να χρησιμοποιήσετε το dirname εντολή. ο dirname Η εντολή παίρνει μια διαδρομή αρχείου ως όρισμα και επιστρέφει το τμήμα καταλόγου της διαδρομής.

Χρησιμοποιώ dirname εντολή για τον προσδιορισμό του καταλόγου ενός σεναρίου, θα καλούσατε την εντολή με τη διαδρομή μέχρι τα τελευταία στοιχεία χωρίς κάθετο στο σενάριο ως όρισμα.



Για περισσότερες λεπτομέρειες σχετικά με dirname εκτελέστε τις ακόλουθες εντολές στο τερματικό:

$ άνδρας dirname

Μόνο dirname δεν θα λειτουργήσει, χρειαζόμαστε μια άλλη εντολή δηλαδή σύνδεσμος ανάγνωσης . ο σύνδεσμος ανάγνωσης Η εκτύπωση εντολής επέλυσε τον συμβολικό σύνδεσμο. Λάβετε περισσότερες πληροφορίες σχετικά με αυτήν την εντολή εκτελώντας:

$ άνδρας σύνδεσμος ανάγνωσης

Τώρα, δημιουργήστε ένα σενάριο :

$ sudo νανο myScript.sh

Και πληκτρολογήστε:

#!/bin/bash

ηχώ «Η διαδρομή του σεναρίου bash είναι $(dirname -- '$(readlink -f – '$0') ' ; ) ';

Για να εκτελέσετε το σενάριο χρησιμοποιήστε:

$ βίαιο χτύπημα myScript.sh

Ας αλλάξουμε τον κατάλογο και ας δούμε ποια είναι η έξοδος:

Σημείωση: Σε μία περίπτωση, το παραπάνω σενάριο δεν θα λειτουργήσει εάν το αρχείο προέρχεται αντί να εκτελεστεί, όπως φαίνεται στην ακόλουθη έξοδο:

Η έξοδος είναι /home/sam/Desktop ενώ το αρχείο σεναρίου υπάρχει στο /σπίτι/σαμ Ευρετήριο.

συμπέρασμα

Συμπερασματικά, υπάρχουν πολλοί τρόποι για τον προσδιορισμό του καταλόγου ενός σεναρίου bash μέσα από το ίδιο το σενάριο. ο dirname μαζί με σύνδεσμος ανάγνωσης Το βοηθητικό πρόγραμμα μπορεί να χρησιμοποιηθεί για τον προσδιορισμό του καταλόγου ενός σεναρίου. Ωστόσο, απλά χρησιμοποιώντας pwd Η εντολή δεν λειτουργεί καθώς δίνει μόνο τον τρέχοντα κατάλογο που λειτουργεί.