bash命令行append to variable将改为prepend

bash命令行append to variable将改为prepend,bash,variables,loops,for-loop,append,Bash,Variables,Loops,For Loop,Append,在shell脚本中,我通常在变量后面附加一个带有“${variable}end”的字符串。但是,我有一个文件“file.txt”,我希望所有行都加上“end”。例如,命令行I在'cat file.txt'中为I执行;做回显“${i}end”;完成。但是“结束”一词(加空格)将不会被追加,而是被追加。当我使用while循环时也会发生同样的事情。有人能告诉我那里发生了什么事吗?我在LinuxMint13 64位(包括Cinamon和Mate)上使用GNU bash版本4.2.37 谢谢你的帮助 这可

在shell脚本中,我通常在变量后面附加一个带有“${variable}end”的字符串。但是,我有一个文件“file.txt”,我希望所有行都加上“end”。例如,命令行I在'cat file.txt'中为I执行
;做回显“${i}end”;完成
。但是“结束”一词(加空格)将不会被追加,而是被追加。当我使用while循环时也会发生同样的事情。有人能告诉我那里发生了什么事吗?我在LinuxMint13 64位(包括Cinamon和Mate)上使用GNU bash版本4.2.37


谢谢你的帮助

这可能只是你的语法-别忘了
do
。即:

for i in `cat file.txt`; do echo "${i} end"; done
如果您询问如何创建每行都附加“end”的新文件,请尝试以下操作:

for i in `cat file.txt`; do echo "${i} end" >> some_new_file; done

您应该使用while循环而不是for循环

当IFS=read-r行时
做
回显“$行结束”
完成<“file.txt”

使用循环是唯一的选择吗?如果您只想在每一行的末尾添加一些内容,那么使用
sed

sed -ie 's/.*/& end/' file.txt

不要在cat文件中使用
而是在读取时使用
。。。done
你好,马特,很抱歉,我没有忘记do(只是我的帖子有个错误):/“[…]不会被追加,而是被追加。”这是什么意思?你好,不,对不起,我忘记添加了,我也尝试了一个while循环!我可以提供一个截图。我很困惑this@WayneJhukie请注意,
$line
周围没有括号。否则,我不知道为什么它不起作用。
sed -ie 's/.*/& end/' file.txt