Quando trabalho com scripts Bash, sempre crio arquivos usando vi
.
Estou depurando um script que em teoria está escrito corretamente e resolvi verificar os arquivos que criei usando o file
comando. Isto é o que eu vejo.
myScript1 Bourne-Again shell script text executable, Unicode text, UTF-8 text
myScript2 ASCII text
myScript3 POSIX shell script text executable, ASCII text
myScript4 Unicode text, UTF-8 text
Como quatro scripts criados no mesmo dia podem vi
ter codificações diferentes?
O que estou depurando éASCII text
Como mudar isso para Bourne-Again shell script text executable, Unicode text, UTF-8 text
?
file
apenas adivinha o tipo de arquivo com base em seu conteúdo. Precisaríamos ver algo do conteúdo desses arquivos.Com um palpite do que está acontecendo:
Os dois tipos diferentes de script podem ser causados por
#!
linhas shebang() diferentes no início de um arquivo.A diferença entre o texto ASCII e o texto UTF-8 pode ser simplesmente se houver caracteres multibyte nele (códigos de caracteres> 127). O arquivo deve adivinhar a diferença entre UFT-8 e ASCII porque não há diferença real entre os bytes.
Mas se nenhum código de caracteres > 127 for encontrado, então ASCII e UTF-8 serão idênticos.