{"id":1409,"date":"2010-01-01T18:45:36","date_gmt":"2010-01-01T17:45:36","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=1409"},"modified":"2024-05-24T15:37:23","modified_gmt":"2024-05-24T13:37:23","slug":"budowa-skryptow","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2010\/01\/01\/budowa-skryptow\/","title":{"rendered":"Struktura skrypt\u00f3w"},"content":{"rendered":"<p>W artykule tym por\u00f3wnuj\u0119 budow\u0119 skrypt\u00f3w pisanych w j\u0119zykach bash, perl, php, python.<!--more--><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1428\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/logo_bash-300x127.png\" alt=\"\" width=\"300\" height=\"127\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/logo_bash-300x127.png 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/logo_bash.png 376w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/span><\/p>\n<p>Skrypt najlepiej je\u017celi ma rozszerzenie .sh, nazwa np. <code>script.sh<\/code><\/p>\n<p>Budowa skryptu wygl\u0105da\u0107 mo\u017ce nast\u0119puj\u0105co:<\/p>\n<pre class=\"\">#!\/bin\/bash\r\n\r\n# comment\r\n# source \/path\/to\/file\r\n\r\necho \"Hello World\"<\/pre>\n<p>Gdzie:<br \/>\n<code>#<\/code> to znak rozpoczynaj\u0105cy komentarz<br \/>\n<code>source \/path\/to\/file<\/code> to wczytanie pliku z dowolnym innym kodem basha.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1429\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/logo_python-300x89.png\" alt=\"\" width=\"300\" height=\"89\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/logo_python-300x89.png 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/logo_python.png 486w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/span><\/p>\n<p>Roszezrzenie .py, nazwa np.<code> script.py<\/code><\/p>\n<pre class=\"lang:python decode:true\">#!\/usr\/bin\/python\r\n\r\n# comment\r\n\r\nprint \"Hello World\"<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1430\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/logo_perl-300x142.png\" alt=\"\" width=\"300\" height=\"142\" \/><\/span><\/p>\n<p>Rozszerzenie .pl, np. nazwa <code>script.pl<\/code><\/p>\n<pre class=\"lang:perl decode:true\">#!\/usr\/bin\/perl -w\r\n\r\n# comment\r\n# require \/path\/to\/file.pl;\r\n# use some_libs;\r\n\r\nprint \"Hello World \\n\";<\/pre>\n<p>Gdzie:<br \/>\n<code>#<\/code> to znak rozpoczynaj\u0105cy komentarz<br \/>\n<code>require \/path\/to\/file.pl<\/code> to wczytanie pliku z dowolnym innym kodem perla.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1431\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/logo_php-300x162.png\" alt=\"\" width=\"300\" height=\"162\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/logo_php-300x162.png 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/logo_php.png 711w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/span><\/p>\n<p>Rozszerzenie .php, nazwa np. <code>script.php<\/code><\/p>\n<pre class=\"lang:php decode:true\">#!\/usr\/bin\/php\r\n&lt;?php\r\n\r\n# comment1\r\n\/\/ comment2\r\n\/*\r\ncomment3\r\n...\r\n*\/\r\n# include \/path\/to\/file.php;\r\n\r\nprint \"Hello World \\n\";\r\n?&gt;<\/pre>\n<p>Gdzie:<br \/>\n<code>#, \/\/, \/* *\/<\/code> to znaki komentarza<br \/>\n<code>include\/path\/to\/file.php<\/code> to wczytanie pliku z dowolnym innym kodem php.<\/p>\n<p>&nbsp;<\/p>\n<table style=\"width: 581px;\">\n<tbody>\n<tr>\n<td style=\"width: 193px;\"><\/td>\n<td style=\"width: 50px; text-align: center;\"><span style=\"color: #339966;\">Bash<\/span><\/td>\n<td style=\"width: 50px; text-align: center;\"><span style=\"color: #339966;\">Python<\/span><\/td>\n<td style=\"width: 50px; text-align: center;\"><span style=\"color: #339966;\">Perl<\/span><\/td>\n<td style=\"width: 50px; text-align: center;\"><span style=\"color: #339966;\">PHP<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 193px;\">\u015aredniki na ko\u0144cu linii<\/td>\n<td style=\"width: 50px; text-align: center;\">&#8211;<\/td>\n<td style=\"width: 50px; text-align: center;\">&#8211;<\/td>\n<td style=\"width: 50px; text-align: center;\">+<\/td>\n<td style=\"width: 50px; text-align: center;\">+<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Mo\u017cliwe przyczyny nie dzia\u0142ania skrypt\u00f3w:<\/p>\n<ul>\n<li>\u017ale ustawiona \u015bcie\u017cka do interpretera,<\/li>\n<li>\u017ale podana \u015bcie\u017cka do pliku zawieraj\u0105cego skrypt,<\/li>\n<li>niepoprawne zainstalowany interpreter,<\/li>\n<li>(w systemach UNIX) \u017ale ustawione prawa dost\u0119pu do pliku (aby nada\u0107 skryptowi prawo wykonywalno\u015bci nale\u017cy u\u017cy\u0107 polecenia chmod +x).<\/li>\n<\/ul>\n<p>Uwaga. Zamiast bezpo\u015brednich \u015bcie\u017cek do interpreter\u00f3w mo\u017cna u\u017cywa\u0107 zapis\u00f3w:<\/p>\n<pre>#!\/usr\/bin\/env\u00a0 bash\r\n#!\/usr\/bin\/env\u00a0 python\r\n#!\/usr\/bin\/env\u00a0 perl\r\n#!\/usr\/bin\/env\u00a0 php\r\n#!\/usr\/bin\/env\u00a0 ruby<\/pre>\n<p>Zmienne: bash, python, perl, php, ruby musz\u0105 by\u0107 jednak zdefiniowane w zmiennej systemowej <code>$PATH<\/code>. Zalet\u0105 takiego rozwi\u0105zania jest wi\u0119ksza przeno\u015bno\u015b\u0107 skrypt\u00f3w. Wad\u0105 jest to, \u017ce takich skrypt\u00f3w\u00a0 nie mo\u017cna uruchamia\u0107 z argumentami. Ponadto cron uruchamiany na koncie zwyk\u0142ego u\u017cytkownika dzia\u0142a w ograniczonym \u015brodowisku i mo\u017ce mie\u0107 problem z tak zdefiniowanym interpreterem danego skryptu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W artykule tym por\u00f3wnuj\u0119 budow\u0119 skrypt\u00f3w pisanych w j\u0119zykach bash, perl, php, python.<\/p>\n","protected":false},"author":1,"featured_media":1424,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1409"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1409"}],"version-history":[{"count":23,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1409\/revisions"}],"predecessor-version":[{"id":1450,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1409\/revisions\/1450"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1424"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1409"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}