使用俄语或中文字符执行sh文件-另存为UTF-8或Unicode

时间:2019-01-04 20:47:27

标签: bash encoding character-encoding locale

我有一个文件,其中包含一些俄罗斯字符。以下是我的sh文件的内容。

#!/bin/sh
sed -i "s/\bVAR1\b/Привет, как ты/g" file1.txt

保存此文件时,我必须将其保存为UTF-8或Unicode格式,因为文件中包含一些Unicode格式字符,如果另存为ANSI,我将丢失这些字符。保存文件后,使用file命令时,将显示以下内容

bash-4.1$ file test.sh
test.sh: UTF-8 Unicode (with BOM) English text, with very long lines, with CRLF line terminators

问题:如何使它成为可执行的shell脚本文件?如果我的文件只有英文字符,则会显示以下内容

bash-4.1$ file test2.sh
test2.sh: POSIX shell script text executable

1 个答案:

答案 0 :(得分:0)

您似乎在shebang开头缺少井号(#)。创建具有此内容的文件(test.sh):

#!/bin/sh 
sed -i "s/\bVAR1\b/Привет, как ты/g" file1.txt

然后使其与chmod +x test.sh可执行,将产生预期的可执行脚本。

$ file test.sh
test.sh: POSIX shell script text executable, UTF-8 Unicode text