【ShellScript】設定ファイルの内容と設置を一行のコマンドにまとめる

  • 2019年12月25日
  • bash

 RaspberryPi等のLinuxOSを積んだマシンの設定を行うことはよくあります。同じ作業を行うこともよくあります。なるべく楽にやりたいものです。自分はそういった作業を簡略化するためにシェルスクリプトを作ることがよくあります。シェルスクリプトなので部分的にコマンドをとってきてそのままコンソールで叩いてもOKな時が多いのが中々好きです。この記事ではそういったシェルスクリプト1ファイルに設定ファイルを全て詰め込むのに役立つコマンドの例を紹介します。1ファイルで済むのでデプロイ漏れやファイル管理から解放されます。
 実行コマンドは次です。

echo -e "改行を文字列\nにしてファイル内容を直書き" | sudo tee 出力先のフルパス
# 具体例
echo -e "#!/bin/sh\nnode /home/pi/js/forward.js\n" | sudo tee /opt/activate_forward_js.sh

 echoのeオプションは”バックスラッシュでエスケープした文字を解釈するようにする。”という機能です。これのおかげで文字列\nが出力時に改行コードとして扱われます。
 teeは”標準入力から読み込んだ内容を標準出力とファイルに書き込む”コマンドです。小さめのファイルならば画面に出力される方を読んで目視確認ができます。
 これでシェルスクリプト中に一行でファイル内容が記述でき、コンソールでファイルを追加したい時、ほんの一部を変更したい時、FTPやらなにやらを介さずコマンドラインにコピペするだけで目的を達成できます。
 文字列\nと改行を行き来する際にはエディタの置換機能を使うと便利です。大体、\\n と \n を相互に置換すれば大丈夫です。エディタの設定によってはファイル末尾に改行コードが自動で入るのでコマンドの末尾を削る必要がある時もあります。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG