W artykule tym porównuję budowę skryptów pisanych w językach bash, perl, php, python.

Skrypt najlepiej jeżeli ma rozszerzenie .sh, nazwa np. script.sh
Budowa skryptu wyglądać może następująco:
|
1 2 3 4 5 6 |
#!/bin/bash # comment # source /path/to/file echo "Hello World" |
Gdzie:
# to znak rozpoczynający komentarz
source /path/to/file to wczytanie pliku z dowolnym innym kodem basha.

Roszezrzenie .py, nazwa np. script.py
|
1 2 3 4 5 |
#!/usr/bin/python # comment print "Hello World" |

Rozszerzenie .pl, np. nazwa script.pl
|
1 2 3 4 5 6 7 |
#!/usr/bin/perl -w # comment # require /path/to/file.pl; # use some_libs; print "Hello World \n"; |
Gdzie:
# to znak rozpoczynający komentarz
require /path/to/file.pl to wczytanie pliku z dowolnym innym kodem perla.

Rozszerzenie .php, nazwa np. script.php
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/usr/bin/php <?php # comment1 // comment2 /* comment3 ... */ # include /path/to/file.php; print "Hello World \n"; ?> |
Gdzie:
#, //, /* */ to znaki komentarza
include/path/to/file.php to wczytanie pliku z dowolnym innym kodem php.
| Bash | Python | Perl | PHP | |
| Średniki na końcu linii | – | – | + | + |
Możliwe przyczyny nie działania skryptów:
- źle ustawiona ścieżka do interpretera,
- źle podana ścieżka do pliku zawierającego skrypt,
- niepoprawne zainstalowany interpreter,
- (w systemach UNIX) źle ustawione prawa dostępu do pliku (aby nadać skryptowi prawo wykonywalności należy użyć polecenia chmod +x).
Uwaga. Zamiast bezpośrednich ścieżek do interpreterów można używać zapisów:
|
1 2 3 4 5 |
#!/usr/bin/env bash #!/usr/bin/env python #!/usr/bin/env perl #!/usr/bin/env php #!/usr/bin/env ruby |
Zmienne: bash, python, perl, php, ruby muszą być jednak zdefiniowane w zmiennej systemowej $PATH. Zaletą takiego rozwiązania jest większa przenośność skryptów. Wadą jest to, że takich skryptów nie można uruchamiać z argumentami. Ponadto cron uruchamiany na koncie zwykłego użytkownika działa w ograniczonym środowisku i może mieć problem z tak zdefiniowanym interpreterem danego skryptu.


