Eu tenho um arquivo pequeno que inicializa uma tmux
sessão e cria algumas janelas. Após algumas depurações e ajustes, tudo funcionou bem até que eu renomeie o arquivo de texto (com os tmux
comandos) de spam
para xset
:
$ source xset
bash: source: /usr/bin/xset: cannot execute binary file
Renomeei o arquivo novamente e source spam
funciona novamente, mas estou me perguntando por que isso acontece. O arquivo está no meu diretório pessoal e não está /usr/bin
.
xset
. Tentesource ./xset
.Respostas:
a
bash
fonte de comando interna, primeiro procura o nome do arquivo em PATH, a menos que haja uma barra (/
) no nome do arquivo.xset
é um arquivo executável no seu PATH, daí o problema.Você pode executar
source ./xset
ou alterar a opção sourcepath para off com:Na
bash
página de manual:fonte
O
source
comando irá :Esse comportamento é definido (para
.
, seu alias) pelo POSIX . Por quê? Bem, você pode inserir scripts de configuração acessíveisPATH
e acessá-los sem um caminho qualificado. Para acessar o arquivo desejado, forneça um caminho absoluto ou relativo:Todos os itens acima funcionarão conforme o esperado inicialmente. Você também pode desativar
sourcepath
comshopt
.fonte