はじめに どこからでもシェルスクリプトを実行できるようにと、冒頭でカレントディレクトリを移動するコードをベストプラクティスかのように書いてある記事がいくつかありますが、それは違います。例えば以下のようなコードは良くないコードです。 # スクリプトのある場所にカレントディレクトリを移動してはいけない cd "$(dirname "$0")" # 上記のやたらと面倒な書き方 WORKDIR=$(cd "$(dirname "$0")" && pwd) cd "$WORKDIR" 絶対に書いたらだめなのか?と聞かれるなら、理由をわかった上で「手抜きとして」なら書いても良いと思いますが、ベストプラクティスではありません。 補足 上記のコードは問題点を示すサンプルコードです。他にも cd が失敗した場合などの別の問題がありますが、この記事の内容とは無関係なので意図的に省略しています。私は set -