【シェルスクリプト】git clone した後、クローンしたディレクトリへ移動する
git clone
コマンドを実行してクローンした後、cdコマンドでディレクトリ移動するのがめんどくさい。
そこで、git clone とcd コマンドを1つにまとめたシェルスクリプトを用意した。
#! /bin/bash
# $1 https://github.com/seiya0723/django-auth/tree/main/accounts
echo $1
# ここでtree以降は切り捨てる。
repo=$(echo "$1" | sed s/tree.*//g)
# 移動対象のディレクトリを取り出す。
destination=$(echo ./"$1" | sed "s/tree\/[[:alnum:]_-]*\///g" | sed "s/https:\/\/github.com\/[[:alnum:]_-]*\///g")
git clone $repo
cd $destination
例えば、特定のディレクトリ(tree/main/accounts)を指定している場合、そのディレクトリへ移動するようにしている。
しかし、シェルスクリプト上でcdコマンドを実行しようとしても、サブシェルで行われているため、シェルスクリプト終了時に元のディレクトリに戻ってしまう。
そこで、このシェルスクリプトを起動する際には、以下のようにsource コマンドで実行する。
source ./gitclone.sh
ちなみに、どこでも実行できるよう、このシェルスクリプトをbashのエイリアスに登録しておく。
alias gitcd="source ./gitclone.sh"