Help us understand the problem. What is going on with this article?

ディレクトリ移動をするbashシェルスクリプト関数

よく使うディレクトリへの移動を簡単にするために
シェルスクリプトの関数を作ります。

作り方

  1. シェルスクリプトの関数を作る
  2. 起動時に関数を読み込むように、bashrcに記載する
  3. bashrcを再読込する

1. シェルスクリプトの関数を作る

移動先のディレクトリを、仮にhome/myname/Documents/myworkとします。

以下のように、ディレクトリ移動をする関数を作成します。

mywork.sh
#!/bin/bash

function mywork() {
    cd /home/myname/Documents/mywork
}

2. 起動時に関数を読み込むように、bashrcに記載する

~/.bashrcに以下を追記します。

~/.bashrc
source スクリプト/への/パス/mywork.sh

3. bashrcを再読込する

$ source ~/.bashrc

使い方

作ったmywork関数が叩けるようになっているので、ターミナルで叩けばOK。

$ mywork # /home/myname/Documents/mywork へ移動することができる

少し機能拡張

複数ディレクトリから選択する方法

よく使うするディレクトリが複数あるときは、
以下のように書くことで実現することができます。

mywork.sh
#!/bin/bash

function mywork() {
    # 移動したいディレクトリのリスト
    local WORKDIRS="
        /home/myname/Documents/myworkA
        /home/myname/Documents/myworkB
    "

    # 配列に格納する
    local WORKINGDIR_ARRAY=(`echo ${WORKDIRS}`)
    local DIRNUM=${#WORKINGDIR_ARRAY[@]}

    # ディレクトリ一覧を表示する
    local dir
    local i=0
    for dir in "${WORKINGDIR_ARRAY[@]}"
    do
        echo "${i}: ${dir}"
        i=$((i + 1))
    done

    # ディレクトリの選択を促す
    local n
    read -p "Select directory number: " n

    # 入力された値をチェックし、cdコマンドで移動する
    if [ ${n} -ge 0 -a ${n} -lt ${DIRNUM} ]; then
        cd "${WORKINGDIR_ARRAY[${n}]}"
    else
        echo "Invalid Number"
    fi
}

実行結果

$ mywork 
0: /home/takumi/Documents/myworkA
1: /home/takumi/Documents/myworkB
Select directory number: 0     # 0を入力する

$ pwd
/home/takumi/Documents/myworkA

0番を入力したので、myworkAディレクトリに移動しています。

参考にした記事

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした