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

1

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 - em uma linha shebang?

    
por Avinash Raj 30.01.2014 / 16:50

1 resposta

2

A - ou - sinaliza o final das opções e desabilita o processamento de opções adicionais. O que significa que o bash não aceitará nada de sua opção. Quaisquer argumentos após o - são tratados como nomes de arquivos e argumentos.

Um argumento de - é equivalente a -. Isso é feito para melhorar a segurança do script. Algum usuário pode executar spoofing de raiz de script baseado em setuid. Para evitar falsificação de intérpretes, você precisa adicionar - a #! / Bin / bash. Isso é um ataque raro, mas possível. nixCraft

    
por Mitch 30.01.2014 / 16:59