J'ai un petit fichier qui initialise une tmux
session et crée ensuite des fenêtres. Après quelques débogages et modifications, les choses ont bien fonctionné jusqu'à ce que je renomme le fichier texte (avec les tmux
commandes) de spam
à xset
:
$ source xset
bash: source: /usr/bin/xset: cannot execute binary file
J'ai maintenant renommé le fichier et source spam
fonctionne à nouveau, mais je me demande pourquoi. Le fichier se trouve dans mon répertoire personnel et non dans /usr/bin
.
xset
. Essayezsource ./xset
.Réponses:
la
bash
source de commande interne, cherche d'abord le nom de fichier dans PATH, sauf s'il y a une barre oblique (/
) dans le nom de fichier.xset
est un fichier exécutable dans votre PATH, d'où le problème.Vous pouvez soit exécuter
source ./xset
soit modifier l'option sourcepath sur off avec:Depuis la
bash
page de manuel:la source
La
source
commande :Ce comportement est défini (pour
.
, son alias) par POSIX . Pourquoi? Eh bien, vous pouvez mettre des scripts de configuration sourcables à l'intérieurPATH
et y accéder sans chemin d'accès qualifié. Pour accéder au fichier souhaité, donnez plutôt un chemin absolu ou relatif:Tout ce qui précède fonctionnera comme prévu initialement. Vous pouvez également désactiver
sourcepath
avecshopt
.la source