GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter un script bash via un chemin absolu ?

Je veux exécuter une commande avec un chemin absolu à partir de n'importe quel dossier et obtenir le script à exécuter.

Si j'essaie de courir avec un chemin absolu, j'obtiens une erreur :

/test/test_bash_script.sh 
-bash: /test/test_bash_script.sh: No such file or directory

Fichier /test/test_bash_script.sh n'existe pas et ne peut donc pas être exécuté.

  • Un chemin absolu est défini comme la spécification de l'emplacement d'un fichier ou d'un répertoire à partir du répertoire racine (/ ).

  • /test ne peut pas être un chemin absolu car le répertoire /test n'existe pas (il s'agit d'un sous-répertoire de votre répertoire personnel).

Vous avez deux choix :

  1. Utilisez le chemin d'accès absolu correct au script :

    /Users/danylo.volokh/test/test_bash_script.sh
    
  2. Utilisez le chemin basé sur votre répertoire personnel :

    ~/test/test_bash_script.sh
    

Qu'est-ce qu'un chemin absolu ?

Un chemin absolu est défini comme la spécification de l'emplacement d'un fichier ou d'un répertoire à partir du répertoire racine (/ ).

Source Chemin absolu vs chemin relatif sous Linux/Unix

Étant donné que les barres obliques séparent toujours les composants du nom, si un nom de chemin commence par une barre oblique, le répertoire "ROOT" sans nom est supposé commencer le nom de chemin. Le répertoire ROOT n'a pas de nom. C'est la racine de toute l'arborescence du système de fichiers Unix.

Un chemin d'accès commençant par une barre oblique est appelé un chemin d'accès absolu, car il commence toujours à la racine.

Parce qu'il est difficile de parler d'un répertoire qui n'a pas de nom, nous utilisons généralement (incorrectement) le nom "/" (barre oblique) pour le répertoire ROOT.Ceci est faux, car les composants de nom d'un chemin d'accès ne peuvent pas contenir des slashs et des slashs séparent le nom Composants. Comprenez que lorsque nous utilisons "/" pour ROOT, nous voulons vraiment dire "le répertoire ROOT sans nom qui se trouve à gauche de la barre oblique", et non la barre oblique elle-même.

Chemins source Unix/Linux (absolu, relatif, point, point point)


Le chemin absolu est /Users/danylo.volokh/test/test_bash_script.sh , pas /test/test_bash_script.sh . Bash a raison alors.


Linux
  1. Comment déboguer un script bash ?

  2. Obtenir le chemin complet depuis le script Bash ?

  3. Comment diviser une chaîne dans un script bash

  4. Comment convertir .. dans les noms de chemin en nom absolu dans un script bash ?

  5. Comment obtenir le répertoire absolu d'un fichier dans bash ?

Comment exécuter un script bash {7 méthodes}

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Ajouter un script bash au chemin

Comment exécuter à plusieurs reprises un script bash toutes les N secondes ?

Comment exécuter un script .sh à partir de n'importe quel chemin dans un terminal ?