関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。たまに使いたいときに忘れるのでここにメモメモ。。。
シェルスクリプトで何かファイルを出力したりする際に、スクリプトと同じ場所に必ず出力させたい場合があります。
でも、実行するときに別のディレクトリにいる状態で
$ cd dokoka-no-dir
$ ../../scripts/script1.sh
って感じで実行したりすると、スクリプトの中で見える $pwd は dokoka-no-dir となってます。
その状態で echo hello > test.txt みたいな命令を実行すると当然 dokoka-no-dir/test.txt にファイルが出来上がります。
これは困るって場合は、以下のようにやっておくと実行時にちゃんとスクリプトが配置されているディレクトリに出力出来るようになります。
#!/usr/bin/env bash # スクリプトが配置されているディレクトリを取得 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # そのディレクトリに移動 cd "$SCRIPT_DIR" # ここからの処理はスクリプトが配置されているディレクトリが作業ディレクトリになっている echo "現在のディレクトリ: $(pwd)"
大したことない情報ですが、結構知ってると便利な場合が多いTipsです。
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。