O que é uma opção não padrão e por que eles devem ser evitados?

0

Eu vejo isso o tempo todo em páginas de manual, geralmente referindo-se a --verbose flags.

Na página de manual ln :

The -h, -i, -n and -v options are non-standard and their use in scripts is not recommended.

O que exatamente isso significa? Especificamente para este caso, eu tenho um script que cria links simbólicos e eu quero que ele escreva uma lista de links criados para um arquivo. Posso usar ln -v ou devo usar um método diferente?

    
por Blacklight Shining 12.08.2012 / 04:07

2 respostas

1

Lembre-se que existem várias versões do UNIX, com várias versões de utilitários de linha de comando.

Possivelmente melhor formulação seria:

As opções -h, -i, -n e -v são não padronizadas em diferentes versões e seu uso em scripts portáveis não é recomendado.

    
por 12.08.2012 / 04:12
1

A citação completa é assim:

The -h, -i, -n and -v options are non-standard and their use in scripts is not recommended. They are provided solely for compatibility with other ln implementations.

Eu olhei para um número de versões da página man do ln, e notei que nenhuma dessas opções aparecem na especificação POSIX para ln ou em versões mais antigas do UNIX. Versões anteriores não tinham opções. A opção -s foi adicionada quando links simbólicos foram inventados, e -f foi uma opção padrão adicionada a vários comandos para lidar com um caso de uso muito comum. Isso foi para o Unix, onde as pessoas preferiam conjuntos de ferramentas minimalistas.

Eu estou supondo, mas parece-me provável que a maioria das opções usadas em implementações populares do ln foram inventadas por Projeto GNU . O Projeto GNU ("GNU's Not Unix!") Começou como um esforço voluntário para criar um clone livre do Unix. Como você pode ver, o Projeto GNU adora hackear pequenos recursos inteligentes, então faz sentido que todas essas novas opções sejam ideia deles.

O Project GNU nunca produziu um sistema operacional (eles ainda estão trabalhando nisso!), mas suas bibliotecas e utilitários se tornaram recursos padrão das distribuições Linux. (É por isso que os fãs do GNU insistem em se referir ao "GNU / Linux".) Os recursos do Linux que se tornaram populares tendem a ser copiados para várias implementações do Unix. Algumas (mas não todas) das adições do GNU parecem ter aparecido em implementações mainstream do Unix, como Solaris e BSD. Eu suspeito que o pessoal da BSD sentiu que essas quatro opções foram forçadas a usá-las - daí a depreciação na página man.

Os utilitários do OS X são baseados naqueles para o BSD, portanto, a reprovação também aparece lá. Eu não encontrei em nenhum sistema baseado no BSD.

    
por 10.09.2012 / 06:04