* gettext * string和* read *命令的游标之间没有空格

时间:2011-07-03 16:19:19

标签: bash gettext

说出以下 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: |

我的问题:有更好的解决方法吗?

非常感谢。

1 个答案:

答案 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:'