2013-01-04 21 views
3

如何在红帽Linux的文件,这是只有一行的内容的shell脚本设置猛砸变量,然后后添加一些文本。变量设置文件加上一些文字内容之后

例如:

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

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

echo -n "Version..." 

和事情应该工作。

+0

谢谢!那样做了。感谢帮助。 – David

+0

使用'printf'版本...''而不是'echo -n'版本...“'以实现更好的可移植性。在这种情况下并不重要,但这是一个好习惯。 –

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 

测试:)它的工作原理。

2

使用一个bash内建:

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

文件化here: “该命令替换$(cat file)可以由等效替换但速度更快$(< file)

相关问题