はじめに
最近、長らく挫折していた競プロに再入門したのですが、過去問を解く度にファイル作成するのが面倒に感じていました。
そこでBashスクリプトを使えば、ターミナルにてそのファイルを実行するだけで、競プロ用のファイルを作成することが出来、便利だったので共有します。
実際にBashスクリプトを作成
まずターミナルにて、以下を実行してBashスクリプトを記述するファイルを作成します。
touch create_file.sh
そして以下を行い、作成されたファイルに実行権限を与えます。
chmod +x create_file.sh
例として、作成されたファイルを以下のように編集します。
#!/bin/bash
# ディレクトリ名を入力として受け取る
echo "ディレクトリ名を入力"
read dirname
# このスクリプトファイルが存在するディレクトリを取得
script_dir="$(cd "$(dirname "$0")" && pwd)"
# ディレクトリ作成先
full_dir="${script_dir}/abc/${dirname}"
# ディレクトリが存在しなければ作成
if [ ! -d "$full_dir" ]; then
mkdir -p "$full_dir"
echo "ディレクトリが作成された: $full_dir"
else
echo "同じディレクトリが既に存在: $full_dir"
fi
# ディレクトリ内に新しいファイルを作成
touch "${full_dir}/a.cpp"
touch "${full_dir}/b.cpp"
touch "${full_dir}/c.cpp"
touch "${full_dir}/d.cpp"
echo "実行完了"
ファイルの実行内容に関しては、コメントに書いてある通りですが、ディレクトリ名を受け取ってその中に決まったファイルを作成するものになっています。
ファイル名や、作成するディレクトリ先も、少しスクリプトを編集すれば変えることが出来ます。
またテンプレートファイルがある場合は、Bashスクリプトとテンプレートファイルを同じディレクトリに配置し、Bashスクリプトの最後のファイル作成という部分を
cp "${script_dir}/template.cpp" "${full_dir}/a.cpp"
のように変更すると、テンプレートファイルの内容をコピーする形で各ファイルが作成されます。
作成したBashスクリプトを実行するには以下をターミナルに打ち込むだけです。
./create_file.sh
これでファイルを手作業で作成するより、かなり面倒が減りました!
終わりに
本記事には関係ないんですけど、ターミナルって矢印上下キーで過去に実行したコマンドを入力できるんですね。それも便利でびっくりしました。
記事が参考になれば嬉しいです!
宣伝
Konwalk(コンウォーク) という 「歩く時間に英単語を覚える」 をコンセプトにしたWeb英単語帳を運営しています!
ぜひ興味を少しでも持っていただいた方は見てやってください🙇