[PATCH] ash: fix command name of shell scripts
Denys Vlasenko
vda.linux at googlemail.com
Mon Oct 11 00:58:13 UTC 2021
On Sun, Oct 10, 2021 at 11:09 PM <mikma.bbne at lists.m7n.se> wrote:
> Hello,
>
> when executing a script with ash from busybox in the shebang then the command name will contain "sh" instead of the name of the script as expected.
Can't reproduce: I see script name in comm field, not "sh" or "ash":
$ cat comm.tests
{
echo "#!$THIS_SH"
echo 'procdir=/proc/$$'
echo 'echo " /proc/N/exe: $(basename $(readlink $procdir/exe))"'
echo 'echo " /proc/N/comm: $(cat $procdir/comm)"'
} >SCRIPT.sh
chmod 755 SCRIPT.sh
echo ./SCRIPT.sh:
./SCRIPT.sh
echo "exec ./SCRIPT.sh:"
(exec ./SCRIPT.sh)
echo sh ./SCRIPT.sh:
$THIS_SH ./SCRIPT.sh
rm SCRIPT.sh
$ THIS_SH=/bin/bash bash comm.tests
./SCRIPT.sh:
/proc/N/exe: bash
/proc/N/comm: SCRIPT.sh
exec ./SCRIPT.sh:
/proc/N/exe: bash
/proc/N/comm: SCRIPT.sh
sh ./SCRIPT.sh:
/proc/N/exe: bash
/proc/N/comm: bash
$ THIS_SH=/bin/ash ash comm.tests
./SCRIPT.sh:
/proc/N/exe: ash
/proc/N/comm: SCRIPT.sh
exec ./SCRIPT.sh:
/proc/N/exe: ash
/proc/N/comm: SCRIPT.sh
sh ./SCRIPT.sh:
/proc/N/exe: ash
/proc/N/comm: ash
$ ash --help
BusyBox v1.35.0.git (2021-09-07 23:38:50 CEST) multi-call binary.
...
$ bash --help
GNU bash, version 5.0.17(1)-release-(x86_64-redhat-linux-gnu)
...
More information about the busybox
mailing list