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
シェルが後続のコマンドを実行しても変更されません。