如何在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)
答案 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
测试:)它有效。