2012-02-27 32 views
2

BashFAQ of Gregs's Wiki,下面写的是:本地化bash脚本的安全方法?

不要标记包含变量或其他替换字符串。

击(至少通过4.0)进行其它的替换区域设置之前膨胀。因此,在这样的情况下:

echo "The answer is $answer" 

文本字符串$答案将成为显着的字符串的一部分。

现在我可以理解,在标记为可翻译的字符串中使用变量是安全方面的危险,如http://www.gnu.org/software/gettext/manual/html_node/bash.html中所述。然而,既不删除变量也不拆分字符串是可行的,因为这使得翻译变得困难/不可能(因为例如俄语,法语,德语和英语中的不同句子结构)。

所以我的问题是:是否存在任何理智和安全的bash本地化方法,还是在使用本地化时使用更具表现力的编程语言(如Python,Ruby或Perl)?

+0

无法确定发布答案,但http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/localization.html可能有帮助 – 2012-02-27 20:16:45

+0

@David Souther感谢您的评论,这确实有帮助。如果信息是最新的,这正是我所期待的。对于未来的读者,这里是另一个关于我已经偶然发现的bash本地化的链接:http://www.linuxjournal.com/content/internationalizing-those-bash-scripts。不幸的是,他们既没有关于安全性的书,也没有关于相当有用的gettext.sh脚本。 – Inkane 2012-02-27 20:47:11

+0

我会将它添加为答案:) – 2012-02-27 21:50:27

回答