GNU/Linux >> Znalost Linux >  >> Linux

Nemůžete spouštět bash skripty ani jako root?

I když se to přímo netýká tohoto konkrétního vlákna; pokud soubor pochází ze systému Windows, může být na konci řádku CR/LF. To by ovlivnilo všechny řádky v souboru, včetně počátečního spouštěcího řádku, a při prohlížení souboru by to nebylo vidět.

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

Chcete-li to vidět, můžete cat -A soubor:$ cat -A ./test.sh#!/bin/bash^M$echo "me"^M$

K odstranění použijte dos2unix.


To se může stát, pokud jste připojili souborový systém s volbou "noexec". Měli byste jej odstranit.


Skript musí být spustitelný. Použijte toto:

chmod +x <script-name>

Zkuste

ls -la

vidět skutečná práva a vlastnictví souboru. Chcete-li zjistit, zda příkaz chmod skutečně fungoval. Možná budete chtít změnit vlastnictví spolu s modem kontroly souboru:http://www.tuxfiles.org/linuxhelp/fileowner.html


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Rozdíl mezi získáváním zdrojů („.“ nebo „zdrojem“) a spouštěním souboru v Bash?

  3. Bash =~ Regex A Https://regex101.com/?

  1. Není důvod mít Shebang ukazující na /bin/sh spíše než /bin/bash?

  2. Nelze statistikovat /etc/sudoers:Žádný takový soubor nebo adresář?

  3. Použití příkazu Linux Basename ve skriptech Bash

  1. Změňte adresář a spusťte soubor jedním příkazem

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak nastavit ssh bez hesla pomocí klíčů RSA