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 を相互に置換すれば大丈夫です。エディタの設定によってはファイル末尾に改行コードが自動で入るのでコマンドの末尾を削る必要がある時もあります。