Qual era o significado de um caractere especial na linha shebang?

Qual era o significado de um caractere especial na linha shebang?

Eu vi um script como abaixo,

#! /bin/zsh -
del=10
rm -f /mnt/md0/capture/DCN/*(ND.Om[1,$del])

Qual foi o propósito de adicionar -uma linha shebang?

Responder1

Um - ou - sinaliza o fim das opções e desativa o processamento adicional de opções. O que significa que o bash não aceitará nenhuma de suas opções. Quaisquer argumentos após -- são tratados como nomes de arquivos e argumentos.

Um argumento de - é equivalente a --. Isso é feito para melhorar a segurança do script. Alguns usuários podem executar falsificação de raiz de script baseada em setuid. Para evitar falsificação de interpretador, você precisa adicionar -- a #!/bin/bash. Este é um ataque raro, mas possível.NixCraft

informação relacionada