$ /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.