GNU/Linux >> Znalost Linux >  >> Linux

bash sh - příkaz nenalezen

Vyřešil jsem přidání oprávnění ke spuštění:

sudo chmod +x file.sh


Odebrat ; od konce řádků skriptu.

To se v mém bash neděje, takže si nejsem jistý, co přesně je špatně, ale můj odhad je tento:

; je oddělovač příkazů. Protože váš poslední příkaz končí na ; , váš bash pravděpodobně očekává další příkaz poté. Po dokončení skriptu však načte prázdný příkaz, který nelze provést.


Odhaduji, že v souboru máte netisknutelné řídicí znaky, nebo má soubor \r\n (CRLF) konce řádků (režim DOS/windows).

Zkuste to zkontrolovat pomocí těchto příkazů:

$ hexdump -C build.sh 
00000000  23 21 2f 62 69 6e 2f 62  61 73 68 0a 63 64 20 7e  |#!/bin/bash.cd ~|
00000010  2f 77 6f 72 6b 73 70 61  63 65 2f 74 72 75 6e 6b  |/workspace/trunk|
00000020  3b 0a 73 76 6e 20 75 70  3b 0a                    |;.svn up;.|
0000002a

$ file build.sh 
build.sh: Bourne-Again shell script, ASCII text executable

$ unix2dos build.sh 
unix2dos: converting file build.sh to DOS format ...

$ hexdump -C build.sh 
00000000  23 21 2f 62 69 6e 2f 62  61 73 68 0d 0a 63 64 20  |#!/bin/bash..cd |
00000010  7e 2f 77 6f 72 6b 73 70  61 63 65 2f 74 72 75 6e  |~/workspace/trun|
00000020  6b 3b 0d 0a 73 76 6e 20  75 70 3b 0d 0a           |k;..svn up;..|
0000002d

$ file build.sh 
build.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators

Vyřešil jsem svou chybu z tohoto příkazu.

sudo chmod +x build.sh

Linux
  1. [Opraveno] bash:sudo:příkaz nenalezen

  2. Značka:Dh:Příkaz nenalezen?

  3. bash:netstat:příkaz nenalezen.

  1. ifrename:příkaz nenalezen

  2. nc:příkaz nenalezen

  3. gradle:příkaz nenalezen

  1. rm:příkaz nenalezen

  2. mv:příkaz nenalezen

  3. ln:příkaz nenalezen