将Bash脚本中的变量设置为文件内容加上一些文本

时间:2013-01-04 03:41:05

标签: bash

如何在redhat Linux的shell脚本中将Bash变量设置为文件的内容(只有一行),然后在其后添加一些文本。

例如:

echo "Version 1.2.3.4" > $TMPDIR/devver
env=dev
export ${env}_result="`cat $TMPDIR/${env}ver` (No response - version is from cache)"
echo $dev_result

我希望输出为:

Version 1.2.3.4  (No response - version is from cache)

相反,我在版本之后得到一个换行符,如下所示:

Version 1.2.3.4
(No response - version is from cache)

3 个答案:

答案 0 :(得分:3)

您的问题不在文件创建中的变量设置中。 echo为文件内容添加换行符。所以使用

echo -n "Version..."
事情应该有效。

答案 1 :(得分:2)

使用bash内置:

export ${env}_result="$(< $TMPDIR/${env}ver) (No response - version is from cache)"
echo "$dev_result"

记录here: “命令替换$(cat file)可以替换为等效但更快$(< file)。”

答案 2 :(得分:1)

实用程序tr可能有所帮助:

echo "Version 1.2.3.4" | tr '\n' ' '> $TMPDIR/devver
env=dev
export ${env}_result="`cat $TMPDIR/${env}ver` (No response - version is from cache)"
echo $dev_result

测试:)它有效。