シェルスクリプトであいみょんの曲をランダム再生したくて



あいみょんをシェルスクリプトに組み込んで表示させてみたくてまとめてみました。(こないだ地元であいみょんがライブしてたので)
まぁSpotifyとかのAPI使用したらこんな手間をやる必要ないんですけどw

あえてシェルスクリプトでやります。



なぜシェルスクリプト?

シェルスクリプトは、コマンドラインの魔法使いになれる強力なツールです。複雑な操作を自動化したり、システムを管理したりするのに便利です。日常的なタスクを効率化したり、複数のコマンドを組み合わせて新しい機能を作り出したりすることができます。

初心者にとっては少し敷居が高く感じるかもしれませんが、実際に使ってみると意外と簡単で、そして何より楽しいものです。今回は、その入り口として、音楽好きの方々にも親しみやすい、楽しみながら学べるプロジェクトを用意しました。

今回のプロジェクト:あいみょんランダムセレクター

このプロジェクトを通じて、シェルスクリプトの基本を学びながら、こんなことができるようになります:

  1. あいみょんの代表曲をランダムに選択する

  2. 選ばれた曲の情報(曲名、歌詞の一部、シングル名)を表示する

これらの機能を実現するために、配列の使用方法、ランダム関数の利用、文字列の操作など、シェルスクリプトの基本的な要素を学んでいきます。

それでは、一緒に作っていきましょう!

Step 1: 環境設定

まずは、実行環境の準備から始めましょう。使用するOSによって、準備の方法が少し異なります。

  • macOSまたはLinux:
    これらのOSには、デフォルトでシェル(通常はBashまたはZsh)が搭載されています。そのままターミナルを開いてOKです。macOSの場合は「アプリケーション」→「ユーティリティ」→「ターミナル」を開いてください。Linuxの場合は、使用しているディストリビューションに応じてターミナルを開いてください。

  • Windows:
    WindowsにはデフォルトでBashシェルが搭載されていないため、追加のセットアップが必要です。以下のいずれかの方法をお勧めします:

    1. Git Bashをインストールする:
      Git for Windowsをインストールすると、Git Bashという軽量なBash環境が付属してきます。

    2. WSL(Windows Subsystem for Linux)を使用する:
      より本格的なLinux環境が必要な場合は、WSLをインストールすることをお勧めします。これにより、Windows上で完全なLinux環境を利用することができます。

環境が整ったら、次のステップに進みましょう。

Step 2: スクリプトを書こう

それでは、実際にスクリプトを書いていきます。お気に入りのテキストエディタを開いてください。Windows環境ではメモ帳でも構いませんが、プログラミング用のテキストエディタ(Visual Studio Code、Sublime Text、Atomなど)を使用すると、より快適に作業できます。

新しいファイルを作成し、ファイル名を `aimyon_random.sh` として保存してください。そして、以下のコードを入力します。

#!/bin/bash

# あいみょんの代表的な曲リストと歌詞の一部を配列に格納
# 各要素は "曲名:歌詞の一部:シングル名" の形式
songs=(
    "マリーゴールド:風の強さがちょっと心を揺さぶりすぎて 真面目に見つめた君が恋しい:マリーゴールド"
    "君はロックを聴かない:少し寂しそうな君に こんな歌を聴かせよう 手を叩く合図:君はロックを聴かない"
    "裸の心:いったいこのままいつまで 1人でいるつもりだろう だんだん自分を憎んだり:裸の心"
    "ハルノヒ:北千住駅のプラットホーム 銀色の改札 思い出話と 想い出ふかし:ハルノヒ"
    "愛を伝えたいだとか:健康的な朝だな こんな時に君の"愛してる"が聞きたいや 揺れるカーテン:愛を伝えたいだとか"
)

# ランダムに1曲選ぶ
# $RANDOMは0から32767までのランダムな整数を生成
# %${#songs[@]}で配列の要素数で割った余りを取ることで、配列のインデックス範囲内の数値を得る
random_index=$((RANDOM % ${#songs[@]}))
random_song="${songs[$random_index]}"

# 選ばれた曲の情報を表示
# IFSを:に設定することで、:で区切られた文字列を別々の変数に代入できる
IFS=':' read -r title lyrics single <<< "$random_song"
echo "選ばれた曲: $title"
echo "歌詞の一部: $lyrics"
echo "シングル: $single"

このスクリプトの各部分について、詳しく説明していきます:

  1. `#!/bin/bash`: これはシバン(shebang)と呼ばれ、このスクリプトをBashで実行することを指定しています。

  2. `songs=( ... )`: これは配列の宣言です。あいみょんの曲情報を格納しています。各要素は "曲名:歌詞の一部:シングル名" の形式になっています。

  3. `random_index=$((RANDOM % ${#songs[@]]))`: この行でランダムな曲を選んでいます。

    • `$RANDOM`: Bashの組み込み変数で、0から32767までのランダムな整数を生成します。

    • `${#songs[@]}`: 配列の要素数を返します。

    • `%`: 剰余演算子です。これにより、必ず配列のインデックス範囲内の数値が得られます。

  4. `random_song="${songs[$random_index]}"`: 選ばれたインデックスの曲情報を取得しています。

  5. `IFS=':' read -r title lyrics single <<< "$random_song"`: 選ばれた曲の情報を分割しています。

    • `IFS=':'`: 区切り文字を:に設定しています。

    • `read`: 入力を読み取るコマンドです。

    • `-r`: バックスラッシュをエスケープ文字として扱わないオプションです。

    • `<<< "$random_song"`: ヒアストリングという機能で、文字列を直接readコマンドに渡しています。

  6. `echo ...`: 最後に、取得した情報を表示しています。

Step 3: スクリプトを実行しよう

スクリプトが完成したら、実際に実行してみましょう。以下の手順で行います:

  1. ターミナル(Windowsの場合はGit BashまたはWSL)を開きます。

結果を楽しもう!

スクリプトを実行すると、以下のような出力が表示されます:

選ばれた曲: 裸の心
歌詞の一部: いったいこのままいつまで 1人でいるつもりだろう だんだん自分を憎んだり
シングル: 裸の心

毎回実行するたびに、ランダムに異なる曲が選ばれます。これで、あいみょんの曲をランダムに楽しむことができますね!

コードの解説

このスクリプトを通じて、以下のようなシェルスクリプトの基本的な要素を学ぶことができました:

  1. 配列の使い方:`songs` 配列を使って、複数の曲情報を効率的に管理しています。

  2. ランダム関数の利用:`$RANDOM` を使って、曲をランダムに選択しています。これは、シェルスクリプトでよく使われる便利な機能です。

  3. 文字列の分割と表示:`IFS``read` コマンドを組み合わせて、文字列を分割し、必要な情報を抽出しています。この技術は、様々なデータ処理タスクで役立ちます。

  4. 変数の使用:`title`、`lyrics`、`single` などの変数を使って、データを一時的に保存し、後で使用しています。

  5. コマンドの出力:`echo` コマンドを使って、処理結果を表示しています。

これらの要素は、より複雑なシェルスクリプトを作成する際の基礎となります。


これらの発展的な機能を実装することで、シェルスクリプトの理解をさらに深めることができます。また、自分の興味や必要性に応じてスクリプトをカスタマイズすることで、プログラミングの楽しさをより深く体験できるでしょう。

まとめ

いかがでしたか?このチュートリアルを通じて、シェルスクリプトの基本を学びながら、好きな音楽の話題で盛り上がることができたのではないでしょうか。シェルスクリプトの世界は奥深く、今回学んだ基本を応用すれば、様々な便利ツールが作れます。


いいなと思ったら応援しよう!

この記事が参加している募集