Como usar o comando linux bash “sort” em um script portátil?

1

Estou escrevendo um script e quero torná-lo portátil, para ter os mesmos resultados nos outros computadores.

De esta questão Aprendi que as configurações do sistema, como configurações de idioma e possivelmente outras variáveis, podem afetar os resultados de exatamente o mesmo comando de classificação exatamente no mesmo arquivo de entrada e argumentos.

Então, minha pergunta é como usar a classificação e garantir o resultado esperado nos outros sistemas? Quais variáveis do sistema devo considerar? Colocar LC_ALL=C b resolve todo o problema?

    
por Ali 22.10.2014 / 23:47

1 resposta

1

Sim, LC_ALL=C resolverá seus problemas de portabilidade (ele se comportará em todos os sistemas da mesma forma)

Observe, no entanto, que isso não significa necessariamente que ele fará o que você deseja . A localidade "C" classificará o valor de byte. O que é bom se todos os seus dados forem puros ASCII. No entanto, se os seus dados puderem conter outros conjuntos de caracteres (por exemplo, outros idiomas nas séries ISO-8859- *, KOI-R ou heavens proíbem conjuntos de caracteres multibyte como UTF-16, UTF-8 etc.), ele irá quebrar terrivelmente.

Mas ainda assim seria portátil, pois iria quebrar horrivelmente da mesma forma em todas as plataformas.

    
por 23.10.2014 / 03:56