見出し画像

カンニングペーパ / sedが入ってなければsedをinstallするshell script

sed に限らず、makeやtrやpython などがインストールされてない環境もあります。配布する開発ツールが前提とするコマンドをインストールするschell script のカンニングペーパーは以下になります。

#!/bin/bash

# sedコマンドのパス
sed_path=$(command -v sed)

# sedがインストールされているか確認
if [ -z "$sed_path" ]; then
  echo "sedコマンドが見つかりません。sedをインストールします。"

  # インストールコマンドに応じて変更
  if command -v apt-get &> /dev/null; then
    # Debian系
    sudo apt-get install -y sed
  elif command -v yum &> /dev/null; then
    # Red Hat系
    sudo yum install -y sed
  elif command -v pacman &> /dev/null; then
    # Arch系
    sudo pacman -Sy --noconfirm sed
  elif command -v brew &> /dev/null; then
    # macOS (Homebrew)
    brew install gnu-sed
  else
    echo "インストール方法がわかりません。手動でsedをインストールしてください。"
    exit 1
  fi

  # 再度パスを確認
  sed_path=$(command -v sed)
  if [ -z "$sed_path" ]; then
    echo "sedのインストールに失敗しました。"
    exit 1
  fi
fi

echo "sedコマンドがインストールされています。"
echo "sedのパス: $sed_path"

上記のスクリプトでは、command -v sedを使用してsedコマンドのパスを取得し、パスが空であればsedがインストールされていないとみなします。その場合は、ディストリビューションや環境に応じたインストールコマンドを使用してsedをインストールします。

スクリプトを実行すると、sedコマンドがインストールされているかどうかを確認し、インストールされていない場合にはインストールを試みます。また、最後にsedのパスを表示します。

スクリプトを実行するには、シェルで保存し、実行権限を付与してから以下のように実行します。


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