在shell脚本 echo命令中,双引号前面的美元符是什么意思?

时间:2019-11-20 08:53:01  来源:igfitidea点击:

例如:

echo $"Hello!"

bash shell 中,echo双引号前面的$是什么意思?

解答

echo 中的美元符号用于将字符串翻译成当前区域设置的语言。

示例

创建西班牙语测试目录

$ mkdir es

创建特定于语言的文件:

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

修改es/greet.pot文件,内容如下:

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

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

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

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

#!/bin/bash
### 设置语言
TEXTDOMAINDIR=/usr/local/share/locale
 
### 指定翻译文件
TEXTDOMAIN=greet
 
echo $"Hello!"

添加可执行权限:

$ chmod +x test

测试:

$ LANGUAGE=es_ES ./test