如何在bash中找到另一个脚本调用的脚本名称("sourced")?

Max*_*Max 14 bash

可能重复:
在bash脚本中如何知道脚本文件名?
如何访问您在Bash中采购的文件的基本文件名

source用于从另一个脚本调用bash脚本时,我无法从该脚本中找出被调用脚本的名称.

file1.sh

#!/bin/bash
echo "from file1: $0"
source file2.sh
Run Code Online (Sandbox Code Playgroud)

file2.sh

#!/bin/bash
echo "from file2: $0"
Run Code Online (Sandbox Code Playgroud)

运行file1.sh

$ ./file1.sh
from file1: ./file1.sh  # expected
from file2: ./file1.sh  # was expecting ./file2.sh
Run Code Online (Sandbox Code Playgroud)

问:我怎样才能检索到file2.shfile2.sh

dog*_*ane 26

更改file2.sh到:

#!/bin/bash
echo "from file2: ${BASH_SOURCE[0]}"
Run Code Online (Sandbox Code Playgroud)

请注意,这BASH_SOURCE是一个数组变量.有关更多信息,请参阅Bash手册页.