Risolvere emissione bin/bash^m Bad Interpreter No Tale file o directory

Risolvere emissione bin/bash^m Bad Interpreter No Tale file o directory
Mentre lavoravamo su diverse piattaforme del sistema operativo, abbiamo incontrato un fascio di errori, io.e., Eseguendo un po 'di codifica o installazione. Quando lavoriamo a Bash, potremmo incontrare centinaia di errori relativi a Bash. Si potrebbe credere che ci sia un problema di autorizzazioni e tentoni di eseguire l'istruzione CHMOD 777 per dare al file di script bash, ma non risolverà il problema. È iniziato dal ritorno del trasporto "M". Il simbolo di alimentazione della linea viene utilizzato in Linux per indicare la finitura di una linea; Nel frattempo, la combinazione a due caratteri CR LF viene utilizzata in Windows. Il tuo documento ha le estremità della linea Windows, che fa perplesso Linux. Vediamo le soluzioni per questo.
$ /bin /bash^m: cattivo interprete: nessun file o directory di questo tipo

In questo tutorial, esamineremo come risolvere il problema che si verifica durante l'esecuzione di Bash o.File SH su un ambiente Linux. Il povero interprete è un altro nome per questo errore. Potresti credere che si tratti di un vincolo di autorizzazioni e provare a utilizzare il comando chmod +x per concedere al file di script shell tutti i privilegi richiesti, ma questo non risolverà il problema. Lo script specifica che verrebbe eseguito usando la shell “/bin/bash^m”. Non esiste un tale file; invece, viene utilizzato "/bin/bash". Il personaggio "^m" sta per il ritorno del trasporto.

Il carattere di alimentazione della linea viene spesso utilizzato in Linux per indicare la fine di una linea, mentre la sequenza a due caratteri CR/LF è spesso utilizzata nei sistemi operativi a forma di finestre. Il file contiene marcatori di finali della linea Windows, che fa perplesso Linux. In un file di script bash, come posso vedere i caratteri di codifica CR o LF? È inoltre possibile visualizzare i caratteri finali della linea come LFCR o LFCR per vista → Mostra simbolo → Mostra fine della riga. Un esempio di un file con caratteri CR o LF è mostrato di seguito:

I display sopra e sotto non sono disponibili nell'editor di blocco note di base; Invece, è necessario installare Notepad ++, una versione avanzata del blocco note. Per correggere l'errore nel sistema operativo di Windows, aprire il file di script bash nell'editor NotePad ++ e quindi andare alla scheda Preferenze tramite il menu Impostazioni come di seguito. Chiudi la finestra dopo aver scelto UNIX/OSX come formato. Successivamente, salva e chiudi il file.

Preferenze → Nuovo documento/Scheda Directory predefinita → Impostazione → Preferenze → Nuovo Documento/Scheda Directory predefinita → Scegli il nuovo formato del documento →

Utilizzo del comando Editor Stream

In Unix, il comando SED conta per un editor riga per riga e può eseguire una vasta gamma di procedure di file come la scansione o la ricerca, la ricerca e la sostituzione, l'inserimento e l'eliminazione. Il comando SED è più comunemente usato nei sistemi operativi unix e simili a Linux per sostituire o trovare e sostituire. Elimina i personaggi CR che non dovrebbero essere lì. È possibile utilizzare (sed) il comando di seguito nell'immagine per realizzare questa attività:

Usando l'utilità DOS2Unix

Dos2Unix è un programma che converte DOS in Unix. Per risolvere lo script shell per i sistemi operativi UNIX-Linux, installare l'utilità DOS2Unix e quindi eseguire il comando DOS2Unix indicato di seguito:

FileName $ dos2unix.sh

Se si ottiene l'errore di comando non trovato, installare prima l'utilità DOS2Unix eseguendo il comando sotto da una shell della riga di comando Linux:

$ sudo apt-get install dos2unix

È possibile utilizzare il comando UNIX2DOS per convertire il file in formato DOS.

In un file di script bash, come posso visualizzare i caratteri CR LF? Tentativo file, file -k e infine comando dos2unix -ih come nella schermata sotto: tentare file, file -k e infine il comando dos2unix -ih come nella schermata sotto. Per la linea Linux/Unix "Cr", stampare semplicemente il testo.

È possibile installarlo sul sistema operativo MACOS utilizzando Homebrew come segue:

$ BROW BREE INSTALL DOS2Unix

Quindi eseguire il comando di seguito per convertire il file in formato DOS in formato UNIX:

FileName $ dos2unix.sh

Qual è lo scopo del comando dos2unix

Dos2Unix è un'utilità che traduce le terminazioni della linea DOS CR (ritorno del carrello) +LF (feed di linea) in codifica della linea Unix nei file di testo LF (feed di linea). Può anche convertire tra i caratteri UTF-16 e UTF-8. Puoi tradurre da UNIX a DOS mentre si utilizza il comando UNIX2DOS. In attesa, questo risolverà il problema che stavi avendo.

Usando l'Editor VIM

Se non hai l'utilità DOS2Unix installata sul tuo sistema operativo Linux, è possibile utilizzare l'editor VIM per trasformare il formato dello script di shell su UNIX. Usa le istruzioni successive per aprire il file in VIM Editor:

VI FileName.sh

O

FileName VIM.sh

Se non ti trovi nella directory o nella cartella corrente in cui si trova il tuo script di file bash, digita il percorso completo della directory, come ho fatto io. Ma se ti trovi nella stessa directory o cartella, puoi eseguire il comando direttamente come indicato sopra. Vim è una forma progressiva dell'editor VI. Entrambi i comandi VI e VIM fanno lo stesso lavoro. Esegui il comando sotto per modificare il formato del file nel sistema operativo UNIX:

$: imposta ff = unix

Quindi, usando i comandi seguenti, tutte le modifiche vengono salvate e chiudi il file nell'editor, scrivi il file e chiuderlo. Adesso hai finito. È possibile convertire il formato dello script shell in unix attraverso uno qualsiasi degli approcci descritti in precedenza. Speriamo che le informazioni di cui sopra abbiano contribuito a risolvere il tuo problema.

$: WQ!

Conclusione

Questo riguarda l'uso di metodi semplici per risolvere il problema "Bin/Bash^M: Bad Interpreter: nessun file o directory di questo tipo". Tutti gli esempi utilizzati qui sono semplici e facili da implementare. Speriamo che ti piaccia e impari di più da esso.