見出し画像

プログラミング学習の記録 #21(Shell スクリプト)

数値計算を行う中で、約10分間で終わる計算を複数回行う必要があるのに、約10分間ごとにPCのボタンを押すことが面倒だった。そこで、Shellスクリプトを利用して、睡眠中に、複数回連続して同じ計算をさせることを試みた。以下、その記録である。

事前準備

Windows PowerShell を右クリックして「管理者として実行」し、以下のコマンドを打ち込んで実行する。

> Set-ExecutionPolicy RemoteSigned

すると、以下のように出力されるので、「Y」を実行する。

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"):

以上で事前準備は、完了である。

スクリプトファイル

適当なテキスト編集アプリ―ケーションで「~~.ps1」というファイル名のファイルを作成する。そのファイルに、連続で実行したいコマンドをテキスト入力していく。たとえば、ファイル名「6th.ps1」というファイルに、以下のようなテキストを入力したとする。

echo "Start over!"
echo "Violence of Silence"
echo "Wind Voice"
echo "Industrial Complex"
echo "Anthem time"
echo "Momentary Horse"
echo "Drone is Flying"

これを実行するためには、ターミナルで以下のようなコマンドを実行すればよい。

> ./6th.ps1

これを実行すると、「6th.ps1」内のコマンドが実行されて、以下のように出力される。

Start over!
Violence of Silence
Wind Voice
Industrial Complex
Anthem time
Momentary Horse
Drone is Flying

繰り返しコマンド

数回程度の繰り返しなら、コマンドを複数回入力すればよいが、繰り返し回数が大きくなってくると、入力が面倒になってくる。そのときは、ps1ファイル内に、以下のようなテキストを入力してみるとよい。

for ($i = 0; $i -lt 10; $i++)
{
    ./a.exe
}

これで、「./a.exe」というコマンドが繰り返される。

-----

動け!タイムライン

動物園か水族館にいきたいですね。