shell

シェルスクリプトと同階層のファイルを扱う時

シェルスクリプトの中で、そのスクリプトと同階層のファイルを扱いたい場合、下記のような事をよくやると思う。 #!/bin/sh DIR_BASE=`dirname ${0}` cat ${DIR_BASE}/file1 cat ${DIR_BASE}/file2 ただこのやり方だと、./script.sh のように実行した場合、DIR_BASE には . が入ってしまう。 ひとたびスクリプトの中でディレクトリ移動してしまうと、同階層にもどってこれないので、DIR_BASE は下記のように得た方が良い。 #!/bin/sh DIR_

tmux

tmux+zsh で SSH_AUTH_SOCK を手軽に更新する

エージェントフォワーディングを有効にしてログインした先で tmux にアタッチした際、既存のシェルの SSH_AUTH_SOCK が更新されません。 これを、ショートカットキーで手軽に更新する方法です。 以下を .zshrc あたりに書いておくと、アタッチした後 Alt+s するだけで、SSH_AUTH_SOCK が更新されます。 if [ -n "${TMUX}" ]; then # 既存のシェルの SSH_AUTH_SOCK を更新 function