TL; ড script=$(readlink -e -- "${BASH_SOURCE}")
(জন্য ব্যাশ স্পষ্টত)
$BASH_SOURCE
পরীক্ষার কেস
প্রদত্ত ফাইল /tmp/source1.sh
echo '$BASH_SOURCE '"(${BASH_SOURCE})"
echo 'readlink -e $BASH_SOURCE'\
"($(readlink -e -- "${BASH_SOURCE}"))"
source
বিভিন্ন শালীন ফাইল
source
থেকে /tmp
$> cd /tmp
$> source source1.sh
$BASH_SOURCE (source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)
$> source ./source1.sh
$BASH_SOURCE (./source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)
$> source /tmp/source1.sh
$BASH_SOURCE (/tmp/source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)
source
থেকে /
cd /
$> source /tmp/source1.sh
$0 (bash)
$BASH_SOURCE (/tmp/source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)
source
বিভিন্ন আপেক্ষিক পথ থেকে /tmp/a
এবং/var
$> cd /tmp/a
$> source ../source1.sh
$BASH_SOURCE (../source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)
$> cd /var
$> source ../tmp/source1.sh
$BASH_SOURCE (../tmp/source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)
সংক্রান্ত $0
সমস্ত ক্ষেত্রে, স্ক্রিপ্টে যদি অতিরিক্ত কমান্ড থাকে
echo '$0 '"(${0})"
তারপর source
স্ক্রিপ্ট সর্বদা মুদ্রিত
$0 (bash)
তবে , স্ক্রিপ্টটি চালানো থাকলে , যেমন
$> bash /tmp/source1.sh
তারপরে $0
স্ট্রিংয়ের মান হবে /tmp/source1.sh
।
$0 (/tmp/source1.sh)
$BASH_SOURCE (/tmp/source1.sh)
readlink -e $BASH_SOURCE (/tmp/source1.sh)