シェルスクリプトでのディレクトリ作業ディレクトリの変更

シェルスクリプトでのディレクトリ作業ディレクトリの変更

ディレクトリをシェルスクリプトディレクトリに変更し、それをエコーする単純なシェルスクリプトを作成しようとしています。

スクリプトは次のとおりです。

#!/bin/bash
# cd '/explicit/path/to/script'
cd $(dirname $0)
echo $(dirname $0)

スクリプトディレクトリに明示的なCDを使用しても、出力は常に次のようになります。

/bin

私は何を見逃していますか?

ベストアンサー1

スクリプトをインポートするのではなく、スクリプトを実行する必要があります。

/path/to/script.sh

(いいえ.)。

走るとき

. /path/to/script.sh

$0現在はシェルであり、おそらく位置があるでしょう/bin(したがって見える動作)。必ずしもそうではなく/bin/bash、スクリプトをインポートするとき shebang は何の効果もありません。

ルーカス' 他の点は有効です。引用符を使用せdirnameずに直接実行する必要がありますecho

おすすめ記事