ディレクトリをシェルスクリプトディレクトリに変更し、それをエコーする単純なシェルスクリプトを作成しようとしています。
スクリプトは次のとおりです。
#!/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
。