说出以下 Bash 脚本:
#!/bin/bash
export TEXTDOMAINDIR=./locale
export TEXTDOMAIN=test-gettext-read
. gettext.sh
echo -n $(gettext "Insert a word: ")
read word
GNU gettext 用于使字符串可翻译, read 用于获取用户输入。但是,即使 gettext 消息中有尾随空格,当我运行脚本时终端中也没有空间。示例(光标为|
):
$ bash test-gettext-read.sh
Insert a word:|
作为一种解决方法,我删除 gettext 字符串中的尾随空格,并在外面添加一个空格:
echo -n $(gettext "Insert a word:")" "
然后它起作用:
$ bash test-gettext-read.sh
Insert a word: |
我的问题:有更好的解决方法吗?
非常感谢。
答案 0 :(得分:1)
不要使用echo -n
。
只需这样做:
gettext "Insert a word: "
read word
或者您可以将表达式白色引号括起来,然后将其传递给echo:
echo -ne "$(gettext 'Insert\ta\tword: ')"
使用引号将确保传递给echo的结果将被解释为3个"Insert a word: "
'Insert'
'a'
的一个参数'word:'
。