bashから現在のスクリプトの場所を取得します(例:python __file__変数)

bashから現在のスクリプトの場所を取得します(例:python __file__変数)

Bashでスクリプトのフルファイル名を取得するには? (Python変数に似ています__file__

それはまるで

#!/bin/bash
# my-script.sh

# would evaluate to /dir/my-script.sh
thisfile=$(get-name-for-this-script)

# Do something with some other local file 
cp $(dirname $thisfile)/something.txt .

ベストアンサー1

sh などのシェルで$0スクリプトを実行するパス。これはbashの下に文書化されています。特殊パラメータ。これは相対パスである可能性があり、この場合、シェルの起動時に現在のディレクトリに相対的です。

$0あるスクリプトが別のスクリプトを使用または実行しても変更されません。現在実行中のコードを含むファイルを表すPythonに近いもの.source__file__$BASH_SOURCE。マニュアルは、トピックについてあまり明確ではありませんが、$BASH_SOURCE関数にないコードの場合でも、現在実行されている行を含むファイルの名前です。$0同様に$BASH_SOURCE相対パスにすることができます。これは.組み込みコマンドに渡されるすべてのパスで、cdシェルが後続のコマンドを実行しても変更されません。

おすすめ記事