GNU/Linux >> Linux Esercitazione >  >> Linux

Script Bash:pessimo interprete

Lo script potrebbe utilizzare Dos newline?

Prova a eseguire dos2unix su di esso.


La prima riga, #!/bin/bash , dice a Linux dove trovare l'interprete. Lo script dovrebbe anche essere eseguibile con chmod +x script.sh , cosa che sembra tu abbia fatto.

È molto probabile che tu abbia creato questo file con un editor di Windows, che inserirà un <cr><lf> alla fine di ogni riga. Questo è lo standard sotto dos / windows. OS X inserirà un <cr> alla fine di ogni riga. Tuttavia, sotto Unix/Linux, lo standard è semplicemente inserire un <lf> alla fine della riga.

Linux ora sta cercando un file chiamato /bin/bash<cr> per interpretare il file, dove <cr> è un carattere di ritorno a capo, che è un carattere di file valido sotto Linux. Tale file non esiste. Da qui l'errore.

Soluzione: Modifica il file con un editor su Linux ed elimina il <cr> in più . Uno strumento che di solito funziona quando il file viene modificato su Windows è dos2unix .


Linux
  1. Script Bash:controlla se un file è un file di testo?

  2. Come evidenziare gli script Bash in Vim?

  3. esecuzione di script php (funzione php) in linux bash

  4. Come controllare syslog in Bash su Linux?

  5. Come includere un file in uno script di shell bash

10 utili alias Bash per Linux

Comando di sospensione di Linux (pausa di uno script Bash)

Come utilizzare gli operatori di test di file Bash in Linux

35 Esempi di script Bash

Utilizzo del comando Linux Basename negli script Bash

/usr/bin/perl:cattivo interprete:file di testo occupato