スクリプトの配置ディレクトリによらず、スクリプトの実行ディレクトリを起点にしてコマンドを実行する場合の記述まとめ

スクリプトを一か所にまとめて置き、複数の場所で使用した場合、いちいち作業ディレクトリにコピーするのが面倒なので以下の特性を知っておくと便利


<関連する記事>
配置場所に依存したスクリプト記述方法▼



現在の作業ディレクトリの取得方法


ディレクトリ構成:
script_test
├── hoge // 実行ディレクトリ1
└── script // 実行ディレクトリ2
    └── script.sh

bash記述例

script.sh:
#!/bin/bash
echo "スクリプト'配置'ディレクトリ"
echo "$(dirname "$0")"
echo "スクリプト'実行'ディレクトリ"
echo "$(pwd)"

csh/tcsh記述例

script.sh:
# !/bin/csh
echo "スクリプト'配置'ディレクトリ"
echo `dirname $0`
echo "スクリプト'実行'ディレクトリ"
echo `pwd`

実行結果

実行(scriptディレクトリ):
スクリプト'配置'ディレクトリ
.
スクリプト'実行'ディレクトリ
/{dir_path}/script_test/script
実行(hogeディレクトリ):
スクリプト'配置'ディレクトリ
../script
スクリプト'実行'ディレクトリ
/{dir_path}/script_test/hoge



スクリプトの特性



特別な処理を記述していなければ、シェルスクリプトはユーザーの現在の作業ディレクトリを起点として、スクリプト内のコマンドを実行するため、mkdirやtouchのコマンドを書いたスクリプトを実行すると、その場に実行結果が反映される。

以下のシェルスクリプトをどこかにおいて、作業ディレクトリを変えて実行すると、作業ディレクトリが現在地として認識されていることが分かる。

script.sh:
#!/bin/bash
pwd
ディレクトリ構造:
script_test
├── hoge // 実行場所1
│   └── script.sh
└── script // 実行場所2

実行結果(Dir : hoge):
/{Dir_Path}/script_test/hoge
実行結果(Dir : script):
/{Dir_Path}/script_test/script


以上
このエントリーをはてなブックマークに追加
コメントを閉じる

コメント

コメントフォーム
記事の評価
  • リセット
  • リセット