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は同じです。