GNU/Linux >> Linux Esercitazione >  >> Linux

Comando sorgente non trovato

Molte volte, quando lavoriamo su Linux, ci siamo imbattuti in un errore piuttosto comune per quanto riguarda la fonte. Questo errore è fonte:comando non trovato e oggi ti spiegheremo tutto ciò che devi sapere al riguardo.

In questo articolo imparerai cos'è l'origine, perché si verifica questo errore e, naturalmente, imparerai anche come risolverlo, quindi se ricevi il comando di origine dell'errore non trovato sul tuo sistema Linux, continua a leggere.

Prima di tutto, qual è esattamente il comando sorgente? È importante affermare che source non è un vero e proprio pacchetto software Linux , non è un programma adeguato come, ad esempio, du, egrep, find, ecc. Source è un comando integrato , è parte del pacchetto software bash .

Per capire cosa fa, in primo luogo, dobbiamo sapere quali variabili di shell e variabili di ambiente sono su Linux. Ogni volta che apriamo una nuova sessione SSH su un sistema Linux, la shell carica automaticamente alcune variabili predefinite. Queste variabili vanno bene per la maggior parte delle attività, ma per altre potrebbe essere necessario apportare alcune modifiche ed è qui che entra in scena il comando sorgente.

Se vogliamo modificare alcune variabili, ad esempio, per eseguire uno script, il modo migliore per farlo è utilizzare il codice sorgente. La maggior parte delle volte, quando eseguiamo uno script su Linux, verrà eseguito in una subshell e quindi non verrà eseguito nello stesso ambiente della nostra sessione di shell corrente. Bene, la fonte lo risolverà per l'uso se dobbiamo utilizzare alcune variabili personalizzate.

Innanzitutto, dovremo definire una variabile nel nostro attuale ambiente shell. Una volta fatto, possiamo utilizzare il codice sorgente per modificare l'ambiente dello script che eseguiamo e renderlo il nostro ambiente attuale, il che renderà disponibile la nuova variabile per lo script che stiamo eseguendo.

Questo può essere molto utile in alcune situazioni, possiamo fare ancora di più con il sorgente, anche se non è questo il punto di questo articolo. Quindi, se facciamo qualcosa di sbagliato durante l'utilizzo del codice sorgente, potremmo ricevere degli errori e uno di questi sarà il comando sorgente non trovato, ovviamente, quindi vediamo cosa causa questo errore.

Cause del comando Source non trovate

Di solito riceviamo questo errore come "fonte:comando non trovato" o, se stiamo usando sudo, come "sudo:sorgente:comando non trovato", in entrambi i casi il problema è che la sessione della shell si aspetta che eseguiamo un programma , ma ricorda che source non è un programma , stiamo effettivamente eseguendo un built-in bash come spiegato in precedenza.

Poiché il terminale pensa che stiamo cercando di eseguire un programma chiamato "sorgente", genererà l'errore non trovato.

Questo errore si verifica anche se proviamo a eseguire un programma che non è installato sul nostro sistema, ad esempio, se proviamo a eseguire qualcosa che non esiste, come "qualcosa", otteniamo lo stesso errore:

[[email protected] ~]$ somethingsomething
bash: somethingsomething: command not found

Quindi, come possiamo risolverlo allora? Questo è ciò che spiegheremo ora.

Come posso correggere l'errore Source command not found su Linux?

Il modo migliore e più semplice per risolvere questo problema è eseguire il comando utilizzando invece root , quindi dovremo avviare una sessione di root utilizzando su o sudo -s . Se ricevi un errore di autenticazione o di autorizzazione, significa che non puoi accedere come root con il tuo attuale utente, chiedi alla persona responsabile di modificare i privilegi in modo da poter accedere temporaneamente come root per risolvere il problema.

Una volta effettuato l'accesso come root, prova a eseguire il comando che prima ha restituito l'errore di origine:questa volta dovrebbe funzionare correttamente.

Un altro modo per risolvere questo problema è forzare l'uso di bash . In alcune distribuzioni Linux, il sorgente integrato non è disponibile per impostazione predefinita perché il comando sh non chiama bash, ma altri programmi come "dash", ad esempio. Quindi, in questo caso, possiamo modificare lo script che stiamo cercando di eseguire e cambiare /bin/sh in alto in /bin/bash, in questo modo:

#!/bin/bash

Una terza soluzione, anche se non sempre funziona, è usare un punto invece della sorgente . Sì, funziona allo stesso modo, quindi se stiamo eseguendo uno script come questo:

source ./myshinyscript

Dovremo sostituire la sorgente con un punto. Sì, un punto:

. ./myshinyscript

È molto importante avere uno spazio tra i due punti, proprio come nell'esempio.

Conclusione

Quindi è stato piuttosto semplice come hai visto. Il vero problema con l'errore del comando sorgente non trovato è capire perché succede, e ora sai che succede perché la sessione della shell scambia il codice sorgente per un programma quando in realtà è un built-in di Bash.

Una volta compreso che risolvere il problema è facile, infatti, ti abbiamo fornito tre soluzioni che puoi provare, che sono l'esecuzione dello script come root, la modifica dello script per forzarne l'esecuzione bash, o l'utilizzo di un punto al posto del sorgente nella riga di comando.

Il comando sorgente non trovato è stato modificato l'ultima volta:9 aprile 2020 da Esteban Borges
Linux
  1. gestore abbonamenti:comando non trovato

  2. dnf:comando non trovato

  3. bc:comando non trovato

  4. dpkg:comando non trovato

  5. id:comando non trovato

nc:comando non trovato

aws-shell:comando non trovato

tvservice:comando non trovato

lspci:comando non trovato

ln:comando non trovato

Comando sorgente non trovato