$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Il existe et il est exécutable. Pourquoi n'y a-t-il pas de documentation à ce sujet dans Ubuntu? Qu'est ce que ça fait? Comment puis-je installer la documentation à ce sujet?
bash
shell
documentation
Andrea Ambu
la source
la source
$ type source
source is a shell built-in
$ whatis source
source (1) - bash built-in commands, see bash(1)
. En outre,man source
me amène auxBASH_BUILTINS(1)
pages de manuel. Ceci est sur Fedora btw, aucune idée de la raison pour laquelle ces paquets Debian sont non (ou mal) documentés.Réponses:
source
est une commande intégrée du shell bash qui exécute le contenu du fichier passé en argument, dans le shell actuel . Il a un synonyme dans.
(période).la source
source
qu'une commande spécifique à Bash ou est-ce que d'autres obus l'ont aussi? (Je demande à ce que lessource
était présent dans la coquille de Bourne et donc probablement dans tous ses descendants. en.wikipedia.org/wiki/Bourne_shell . Je sais que tous les obus n'ont pas lesource
commandement, moins sûr de savoir quel obus le contient.source
n'était pas présent dans le shell Bourne, c'est une extension GNU qui est arrivée beaucoup plus tard. La syntaxe originale et toujours portable (POSIX) consiste à utiliser la commande "point", c'est-à-dire à la.
place. Personnellement, je n’utilise jamais,source
étant donné qu’il est plus long de taper et n’a aucune valeur ajoutée. Je suppose que son objectif principal est de rendre les scripts plus lisibles pour les débutants.source
non seulement plus descriptif, mais il ressemble à autre chose qu'une faute de frappe. Des personnes ont sauté le point / le point lorsque j'envoie des commandes techniques par courrier électronique.source
dans un "fichier de configuration" qui contient principalement des affectations de variables. Les affectations de variables contrôlent ensuite le reste du script. Bien sûr, un bon script définira les variables sur des valeurs par défaut raisonnables avant lesource
, ou au moins, vérifiera les valeurs valides.Faites attention!
./
et nesource
sont pas tout à fait les mêmes ../script
exécute le script en tant que fichier exécutable, en lançant un nouveau shell pour l'exécutersource script
lit et exécute les commandes du nom de fichier dans l' environnement shell actuelNote:
./script
n'est pas. script
, mais. script
==source script
https://askubuntu.com/questions/182012/is-there-a-difference-between-and-source-in-bash-after-all?lq=1
la source
./ == source == .
Il est utile de connaître la commande 'type':
chaque fois que quelque chose est construit dans un shell, il est temps de le faire
man bash
.la source
man
)help {builtin-name}
, à savoirhelp source
.help
ne fonctionne pas partout (au moins en zsh).type
Est-ce que.. (un point) est une commande intégrée du shell bash qui exécute les commandes à partir d'un fichier passé en argument, dans le shell actuel. "source" est un synonyme de ".".
De la page de manuel Bash:
la source
"source" est la version longue de "." commander. Sur l'invite bash, on peut faire:
pour recharger votre réglage (modifié?) de bash pour le bash en cours.
La version courte serait:
La page de manuel:
la source
source
La commande exécute le script fourni (l’autorisation exécutable n’est pas obligatoire ) dans l’ environnement actuel du shell, tandis que./
le script exécutable fourni est exécuté dans un nouveau shell.source
commande a un synonyme. filename
.Pour plus de clarté, jetez un coup d’œil au script suivant, qui définit l’alias.
make_alias
Nous avons maintenant deux choix pour exécuter ce script. Mais avec une seule option, l'alias souhaité pour le shell actuel peut être créé entre ces deux options.
Option 1:
./make_alias
Rendre le script exécutable en premier.
Exécuter
Vérifier
Sortie
Oups! Alias est parti avec le nouveau shell.
Allons avec la deuxième option.
Option 2:
source make_alias
Exécuter
ou
Vérifier
Sortie
Oui, Alias est prêt.
la source
En cas de doute, la meilleure chose à faire est d'utiliser la
info
commande:la source
Tapez la commande "help source" dans votre shell.
Vous obtiendrez une sortie comme ceci:
la source
Dans le projet de documentation Linux, Guide de rédaction avancée de scripts Bash,
chapitre 15 - Commandes internes et éléments intégrés :
Donc, pour ceux qui sont familiers avec le langage de programmation C, la recherche d’un fichier a un effet similaire à celui de la
#include
directive.Notez également que vous pouvez transmettre des arguments de position au fichier en cours d’origine, comme:
la source
source
pouvait prendre des arguments ou utiliserreturn
.Il convient de noter que bien qu'étant une commande impressionnante, ni ,
source
ni son sténographie.
serait la source de plus d'un fichier, ce qui signifieou
ne pas travailler.
Nous pouvons nous replier en utilisant des
for
boucles, mais cela relâcherait l'exécutable plusieurs fois, créant plusieurs commandes ou en émettant plusieurs.Conclusion:
source
ne prend pas plusieurs fichiers en entrée. L'argument doit être un.Ce qui craint à mon humble avis.
la source
Avec source, vous pouvez transmettre des variables ou des fonctions d’un autre fichier à votre script et les utiliser sans avoir à les réécrire.
FI:
À votre santé
la source