echo命令(echo $string)在美元符号之前加双引号的字符串

时间:2020-01-09 10:37:24  来源:igfitidea点击:

Shell脚本示例

创建一个shell脚本,如下所示:

#!/bin/bash
### The location of the message catalog files ###
TEXTDOMAINDIR=/usr/local/share/locale
 
### our .mo file name ###
TEXTDOMAIN=greet
 
### Translate Hello!  string according to the current locale ###
echo $"Hello!"

注意使用$语法的echo命令。
保存并关闭文件。
键入以下命令来创建特定于语言的文件:

$ bash --dump-po-strings greet > greet.pot

创建hi(印地语),fr(法国)和es(西班牙)语言特定的目录:

$ mkdir {hi,fr,es}

复制master greet.pot,输入:

$ cp greet.pot hi/
$ cp greet.pot fr/
$ cp greet.pot es/

更新印地语专用文件,如下所示:

$ cat hi/greet.pot

输出示例:

#: greet:2
msgid "Hello!"
msgstr "नमस्ते!"

更新法语专用文件,如下所示:

$ cat fr/greet.pot

输出示例:

#: greet:2
msgid "Hello!"
msgstr "Bonjour!"

更新西班牙语特定文件,如下所示:

cat es/greet.pot

输出示例:

#: greet:2
msgid "Hello!"
msgstr "Hola!"

将消息目录编译为二进制格式,输入:

$ sudo msgfmt -o /usr/share/locale/hi/LC_MESSAGES/greet.mo hi/greet.pot
$ sudo msgfmt -o /usr/share/locale/fr/LC_MESSAGES/greet.mo fr/greet.pot
$ sudo msgfmt -o /usr/share/locale/es/LC_MESSAGES/greet.mo es/greet.pot

如下测试,在您的问候上设置执行权限:

$ chmod +x greet

测试印地语语言环境版本

$ LANG=hi_IN ./greet

或者

$ LANGUAGE=hi_IN ./greet

测试法语语言环境版本,输入:

$ LANGUAGE=fr_FR ./greet

测试西班牙语语言环境版本,输入:

$ LANGUAGE=es_ES ./greet