【すくりぷと】

スクリプト とは?

💡 コンパイル不要で「その場で実行」できる手軽なプログラム
📌 このページのポイント
スクリプト実行のフロー script.py x = 10 y = 20 print(x+y) # 上から順に実行 インタプリタ 1行ずつ読み込み 即座に実行 (コンパイル不要) 実行結果 30 代表的なスクリプト言語 Python JavaScript Ruby Shell PHP
スクリプト実行のイメージ
ひよこ ひよこ

スクリプトって普通のプログラムと何が違うの?

ペンギン先生 ペンギン先生

主な違いはコンパイルの有無。C言語は書いたコードを一度コンパイル(機械語に変換)してから実行する。スクリプトはPythonBashのように、インタープリタが1行ずつ読みながら直接実行する。

ひよこ ひよこ

どんなことに使うの?

ペンギン先生 ペンギン先生

自動化が主な用途。「毎日0時にログファイルを圧縮してS3に送る」「フォルダ内のファイル名を一括変更する」みたいな定型作業をスクリプトにしてcronで自動実行する、というのが典型例。

ひよこ ひよこ

HTMLのscriptタグも関係あるの?

ペンギン先生 ペンギン先生

そう。HTMLの「<script>」タグはブラウザJavaScriptを実行させる命令。JavaScriptはスクリプト言語なのでブラウザがインタープリタとして逐次実行する。Webページを動的にする処理はここに書く。

ひよこ ひよこ

スクリプト言語って速度が遅いんじゃないの?

ペンギン先生 ペンギン先生

確かにC言語などに比べると実行速度は遅い。でもスクリプトの用途は「人間の作業を自動化すること」だから、開発速度の方が重要なんだ。人間が10分かけていた作業を1秒で終わらせるスクリプトを、5分で書ける。実行が0.1秒か1秒かはあまり問題にならないことが多いよ。

ひよこ ひよこ

セキュリティ的に危ないスクリプトとかあるの?

ペンギン先生 ペンギン先生

あるよ。Webサイトに悪意あるJavaScriptを埋め込むXSS攻撃がまさにそれ。PowerShellスクリプトがマルウェアに悪用されることも多い。だからWindowsではデフォルトPowerShellスクリプトの実行が制限されているし、ブラウザサンドボックスでスクリプトの権限を制限しているんだ。便利だからこそ悪用もされやすいんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
スクリプトって出てきたら「コンパイル不要でインタープリタが実行するプログラムファイル、自動化によく使う」と思えばOK!
📖 おまけ:英語の意味
「Script」 = 台本・脚本
💬 演劇の「台本(script)」から転用。コンピュータが「読みながら実行する台本」のイメージ
← 用語集にもどる