GNU/Linux >> Linux Esercitazione >  >> Linux

Impossibile eseguire script bash anche come root?

Sebbene non direttamente pertinente a questo particolare thread; se un file proviene da un sistema Windows potrebbe esserci un CR/LF alla fine della riga. Ciò influenzerebbe tutte le righe del file, inclusa la riga di esecuzione iniziale, e non sarebbe visibile se stai visualizzando il file.

$ ./test.sh 
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

Per vederlo, puoi cat -A il file:$ cat -A ./test.sh#!/bin/bash^M$echo "me"^M$

Per rimuovere, usa dos2unix.


Ciò può accadere se hai montato il file system con l'opzione "noexec". Dovresti rimuoverlo.


Lo script deve essere eseguibile. Usa questo:

chmod +x <script-name>

Prova

ls -la

per vedere i diritti effettivi e la proprietà del file. Per vedere se il comando chmod ha effettivamente funzionato. Potresti voler cambiare la proprietà insieme alla mod del controllo del file:http://www.tuxfiles.org/linuxhelp/fileowner.html


Linux
  1. Eseguire script Bash all'ingresso di una directory?

  2. Impossibile eliminare il file, anche durante l'esecuzione come root?

  3. Utilizzo del comando Linux Basename negli script Bash

  4. Come evidenziare gli script Bash in Vim?

  5. Parametri di script in Bash

Come verificare se esiste un file o una directory in Bash

Come utilizzare gli operatori di test di file Bash in Linux

Bash Scripting – Dichiarazioni condizionali

Qual è il motivo per cui uno Shebang punta a /bin/sh piuttosto che a /bin/bash?

Impossibile Stat /etc/sudoers:nessun file o directory di questo tipo?

Cambia directory ed esegui il file in un comando