J'ai besoin de trouver de l'aide pour la commande de point .
comme dans . ./my_script.sh
(je veux dire le premier point.)
J'ai déjà essayé de trouver une page de manuel à l'aide de man .
et man \.
. Comment afficher une page de manuel dans laquelle elle explique l'utilisation de la commande .
?
help .
dot
. Voir les spécifications formelles sur pubs.opengroup.org/onlinepubs/009696699/utilities/dot.html.
est une commande, en particulier une fonction intégrée au shell. Dans Bash, c'est équivalent àsource
..
est POSIX, pas seulement bash. Par exemple, c'est aussi en zsh et ksh.Réponses:
Tout d'abord, vous devez invoquer
type .
, vous obtiendrez probablement quelque chose comme:Les builtins font partie de votre shell, ils n'ont pas leurs propres pages de manuel. Certains d'entre eux peuvent cependant sembler en avoir, par exemple, il
echo
s'agit d'un module intégré à Bash, mais il est très probable qu'il existe un exécutable distinct comme/bin/echo
dans votre système et, dans ce cas, seman echo
réfère à ce dernier . Ces deuxecho
s ne sont probablement pas strictement équivalents.Votre shell peut fournir des informations sur tout module intégré via le
help
module intégré; essayezhelp help
,help type
et enfin:Les Builtins peuvent également être listés dans la page de manuel de votre shell. Par exemple (dans mon Debian) les compilations Bash sont couvertes directement
man bash
, mais pour les compilations Zsh, ilman zsh
me dit de courirman zshbuiltins
. En général, les obus peuvent expliquer ou non leur intégration.la source
.
est un shell intégré et cela devrait être marqué comme réponse car OP le demandehow to find help for . in *nix ?
.type .
pour démontrer que certaines commandes sont des commandes intégrées au shell.bash-builtins(1)
page de manuel, qui est d'une taille plus pratique.. --help
fonctionneEssayez d'utiliser
man sh
ouman bash
ou la page de manuel pour le shell que vous utilisez. (Peut-êtreman $SHELL
.)Ceci n'est officiellement pas appelé la commande "point", mais la
source
commande. La recherche du motsource
peut être utile.par exemple, la page de manuel bash (recherchez «chaque commande intégrée»), et vous trouverez rapidement la documentation.
Quant à expliquer l'utilisation, je peux le faire ici. Je vais simplement faire référence à cela comme la
source
commande, reconnaissant qu'elle peut être abrégée en une période lorsque vous utilisez des shells, et avec certains shells, cette commande pourrait avoir besoin d'être (car le point peut être reconnu mais le mot entiersource
peut ne pas être être).Si vous utilisez la
source
commande, votre shell lira chaque ligne du fichier de script et tentera de l'exécuter. Vous avez besoin des autorisations de "lecture" sur le fichier. (Peu importe si vous avez des autorisations "exécuter".) Si vous modifiez une variable, cela est susceptible d'affecter votre shell actuel.Si, en revanche, vous essayez simplement d'exécuter le fichier, votre shell demandera au système d'exploitation de prendre en charge cette demande. Cela nécessitera des autorisations «exécuter». (Sur certains systèmes, comme OpenBSD, vous n'aurez pas besoin d'autorisations de "lecture" pour cela. Sur d'autres systèmes, y compris de nombreuses variantes Unix, vous le ferez.) Le fichier devra peut-être commencer par un en-tête approprié (par exemple,
#!/bin/sh
) afin le système reconnaît qu'il s'agit d'un fichier de script. Le système d'exploitation exécutera une copie du shell demandé et indiquera à ce shell d'exécuter le contenu du script. Si l'environnement shell est modifié (par exemple, une variable obtient une nouvelle valeur, le répertoire de travail est modifié (aveccd
), un descripteur de fichier est redirigé (avecexec
), etc.), cela n'affectera que le sous-shell qui a été appelé pour le script, et ne peut pas modifier l'environnement dans le shell parent qui a appelé le fichier de script.la source
source
en bash. Dans la spécification POSIX, elle est appelée "la commande dot" (et l'source
alias n'est pas pris en charge).man bash
et puis quoi/.
? Pas très utile./source
serait utile, mais pour cela, vous devez le savoir.
etsource
c'est la même chose..
et qu'il pourrait l' êtresource
, mais comme @CharlesDuffy l'a déjà mentionné, il est toujours.
dans n'importe quel shell compatible POSIX et n'a que l'aliassource
dans une coquille.Personne d'autre ne l'a mentionné, car il est souvent oublié.
Votre plus gros indice proviendrait de la commande utile
whatis
.MODIFIER:
Certaines personnes ont souligné dans les commentaires que ce n'est pas dans certaines distrobutions - c'est peut-être un package installable, ou activé un peu comment - je l'avais par défaut dans gentoo;)
Il comprend le merveilleux qui - qui vous indique quel exécutable est appelé, et whereis qui vous donne tous les chemins vers un exécutable que vous nommez, et ce sont les pages de manuel (s'il existe dans plusieurs chemins).
la source
whatis .
renvoieman: 0703-307 . is not found.
whatis .
ne renvoie rien sur Ubuntu 16.04whatis .
" a donné ".: nothing appropriate.
" sur OpenBSD, cela a donné 47 lignes de sortie. Pour cet exemple spécifique (en utilisant "whatis .
" dans Gentoo), les résultats peuvent s'avérer être exceptionnellement bons (ce qui signifie que cette technique n'est généralement pas aussi utile pour de nombreux autres exemples).man source
montrera l'explication dont vous avez besoin.Le point est le même que la commande source.
source
exécute le script dans le shell courant plutôt que dans un sous-shell (c'est la manière habituelle).L'utilisation
source
des variables définies dans le script est conservée une fois le script terminé.la source
man source
fonctionne? Pas dans mon Debian, d'où la question.source
amont - c'est probablement quelque chose que CentOS a fait.man source
vous donneman bash_builtins
, ce qui n'explique rien, mais vous renvoie àbash(1)
man source
me donnesource(3tcl)
...type command
et puis si la commande est un builtinhelp command
c'est probablement la bonne façon ...Le
.
est un synonyme de lasource
commande shell et donc en bash , sa syntaxe est affichée par ...Il fonctionne exactement comme les commandes
include
etimport
dans d'autres langues en ce qu'il lit le fichier cible et l'interprète comme s'il faisait partie du script actuel. Ainsi, ce fichier s'exécutera dans son intégralité avant les commandes du reste du script en cours.Il doit généralement se trouver au début du script en cours et est le plus souvent utilisé pour charger des variables et / ou des définitions de fonction.
la source