¿Qué mantiene $ 0 cuando se llama a través de un enlace simbólico?

El parámetro de shell $0 contiene el nombre del progtwig que realiza la llamada. Si my_command un enlace simbólico llamado my_command en su directory principal al command /usr/local/bin/command1 y lo ejecuta escribiendo ./my_command , ¿cuál será el valor de $0 ? ¿Alguien puede explicar por qué? ¡Gracias!

Related of "¿Qué mantiene $ 0 cuando se llama a través de un enlace simbólico?"

$0 no contiene el nombre del progtwig de llamada sino el nombre del progtwig llamado. El progtwig llamado es ./my_command por lo que $0 será ./my_command también.

El hecho de que sea un enlace simbólico no hace la diferencia.

Una línea de command (o más bien, en UNIX, una matriz de arguments de command-line), incluido lo que se convertiría en $0 , se pasa a la llamada exec por el progtwig de llamada.

La resolución de enlace simbólico, el procesamiento de shebang, etc., solo se realiza después de eso, por el sistema, como parte del procesamiento de la llamada del exec .

Entonces, cualquiera que sea el progtwig de llamada (el shell en su caso) especificado como el primer elemento en argv ( /.my_command en su caso) se convierte en $0 .