zshbuiltins マニュアルから、
exec [ -cl ] [ -a argv0 ] simple command Replace the current shell with an external command rather than forking. With -c clear the environment; with -l prepend - to the argv[0] string of the command executed (to simulate a login shell); with -a argv0 set the argv[0] string of the command executed. See the section `Precommand Modifiers'.
簡単なスクリプトで使っ-a
てみたのですがうまくいかないようです
[balakrishnan@mylap scripts]$ cat printer.sh;echo "-----";cat wrapper.sh
#!/bin/sh
echo $0 $1 $2 $3 $4
-----
#!/bin/zsh
argv0="$0"
exec -a "$argv0" printer.sh
[balakrishnan@mylap scripts]$ wrapper.sh
printer.sh
[balakrishnan@mylap scripts]$
wrapper.sh
として設定したので、 echosのargv0
ときに出力されることを期待しています。しかし、それでも印刷されます。printer.sh
$0
printer.sh