<p>How can I determine the name of the Bash script file inside the script itself?</p>

<p>Like if my script is in file <code>runme.sh</code>, then how would I make it to display "You are running runme.sh" message without hardcoding that?</p>

```
```
me=`basename "$0"`
```
```
For reading through a symlink
1
, which is usually not what you want (you usually don't want to confuse the user this way), try:
```
```
me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"
```
```
IMO, that'll produce confusing output.  "I ran foo.sh, but it's saying I'm running bar.sh!?  Must be a bug!"   Besides, one of the purposes of having differently-named symlinks is to provide different functionality based on the name it's called as (think gzip and gunzip on some platforms).
1
That is, to resolve symlinks such that when the user executes
```
foo.sh
```
which is actually a symlink to
```
bar.sh
```
, you wish to use the resolved name
```
bar.sh
```
rather than
```
foo.sh
```
.