Sempre ouvi dizer que o alvo de uma linha shebang (por exemplo #!/bin/bash
) deve ser um executável binário, não um script. E isso ainda é verdade para muitos sistemas operacionais (por exemplo, MacOS). Mas fiquei surpreso ao ver que isso não é verdade no Linux, onde até 4 níveis de scripts podem ser usados, onde o quarto script faz referência a um executável binário em sua linha shebang. No entanto, se forem usados 5 níveis de scripts, o programa falhará com o erro Too many levels of symbolic links
.
Consulte o artigo do LWN "Como os programas são executados" e o código a seguir, que não foi mostrado nesse artigo.
$ cat wrapper2
#!./wrapper
Quando ocorreu essa mudança (assumindo que em algum momento ela não foi permitida)?