viを使用して別のエンコーディングでファイルを作成する理由

viを使用して別のエンコーディングでファイルを作成する理由

Bashスクリプトを使用するときは常にvi

私は理論的に正しく書かれたスクリプトをデバッグしていて、fileこのコマンドで生成されたファイルを調べることにしました。これが私が見るものです。

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

同じ日に生成された4つのスクリプトがどのようにvi異なるエンコーディングを持つことができますか?

私がデバッグするのはASCII text

にどのように変更しますかBourne-Again shell script text executable, Unicode text, UTF-8 text

答え1

file内容に基づいてファイルの種類を推測してください。このファイルの内容の一部を見てください。

何が起こったのかを推測してください。

これら2つの異なるタイプのスクリプトは、#!ファイルの先頭にある別のshebang()行が原因で発生する可能性があります。

ASCIIテキストとUTF-8テキストの違いは、マルチバイト文字(文字コード> 127)が含まれているかどうかだけです。バイト間に実際の違いがないため、ファイルはUFT-8とASCIIの違いを推測する必要があります。

しかし、127より大きい文字コードが見つからない場合、ASCIIとUTF-8は同じです。

関連情報