Otázka :Jaké jsou základní základní věci, které bych měl vědět, abych mohl spouštět skript Shell? Také, když spustím svůj shell skript, zobrazí se chybová zpráva „Povolení odepřeno“. Jak to napravím?
Odpověď :Pojďme si zopakovat 4 základní základní věci, které byste měli vědět o spouštění skriptu shellu.
1. Najděte spustitelný soubor shellu a zadejte jej jako she-bang #!
Identifikujte úplnou cestu, kde je shell nainstalován.
$ which sh /bin/sh (or) $ which ksh $ which bash
Jakmile určíte umístění spustitelného souboru shellu, zadejte jej jako shebang ( #! ) na prvním řádku souboru skriptu shellu.
$ vim helloworld.sh #!/bin/sh echo "Hello World!"
2. Přidělte oprávnění ke spuštění souboru skriptu prostředí
Pokud nemáte oprávnění ke spuštění skriptu, zobrazí se chybová zpráva „Oprávnění odepřeno“, jak je uvedeno níže.
$ ./helloworld.sh bash: ./helloworld.sh: Permission denied
Přidělte souboru skriptu oprávnění ke spuštění pomocí příkazu chmod, jak je uvedeno níže.
$ chmod u+x helloworld.sh
Pokud chcete udělit oprávnění ke spuštění skupině a ostatním, udělejte to, jak je uvedeno níže.
$ chmod 755 helloworld.sh
Poznámka: Můžete to také provést jako automatický proces. tj. Kdykoli otevřete soubor skriptu shellu, obě požadované věci – přidání shebang a udělení oprávnění ke spuštění lze provést automaticky pomocí pluginu bash-support.vim. Další podrobnosti naleznete v našem dřívějším článku Udělejte z Vimu jako svého Bash-IDE pomocí pluginu podporující bash.
3. Spusťte skript zadáním absolutní nebo relativní cesty
Shell skript můžete spustit buď pomocí absolutní cesty nebo relativní cesty.
Spusťte skript zadáním absolutní cesty, jak je uvedeno níže.
$ /home/ramesh/scripts/helloworld.sh Hello World!
Spuštění skriptu zadáním relativní cesty, jak je uvedeno níže.
$ cd /home/ramesh/ $ ./scripts/helloworld.sh Hello World! (or) $ cd /home/ramesh/scripts $ ./helloworld.sh Hello World!
4. Spuštění skriptu stejně jako běžný příkaz Linux
Skript můžete také spustit bez zadání úplné cesty, absolutní cesty nebo relativní cesty. Chcete-li to provést, přidejte adresář, ve kterém je umístěn celý skript shellu, do proměnné prostředí PATH, jak je uvedeno níže.
Jakmile například přidám /home/ramesh/scripts do proměnné prostředí PATH, mohu skript spustit z libovolného adresáře.
$ export PATH=$PATH:/home/ramesh/scripts $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/ramesh/scripts $ cd /go/to/anydirectory $ helloworld.sh Hello World!