1
q378648220 2014-11-21 17:35:59 +08:00 2
为什么不直接用echo 和 >> 追加在file后面呢。
echo -e '\nendline' >> test.txt |
2
fising 2014-11-21 17:43:45 +08:00
@q378648220 哈哈因为他没想起来
|
3
oott123 2014-11-21 18:00:17 +08:00 via Android
@q378648220 说得好有道理…我刚刚还在想 awk …
|
4
rrfeng 2014-11-21 18:06:10 +08:00
sed -i "$a\nsomewords
" file 为什么不用 echo >> 哈哈哈 |
5
rrfeng 2014-11-21 18:09:04 +08:00
上面有问题,得用单引号!!$ 会被 bash 吃掉
|
6
sbmzhcn OP @q378648220 @fising @oott123 没用echo是因为不想在控制台显示。文件也不一定存在,这是脚本中的一句,我测试的时候使用echo否符合我想要的结果。
sed -i "\$aTEXTAPPEND” file 解决。 |
7
msg7086 2014-11-21 21:01:01 +08:00 via iPhone
echo为什么会在控制台显示?
什么文件不一定存在? |
8
sbmzhcn OP @msg7086 echo 是显示到屏幕, 不是吗,有个sed可以解决,为什么一定要用echo. 这些功能是在一个脚本中的,这个脚本的功能需要这样做。
|
9
blacktulip 2014-11-21 22:01:58 +08:00
@sbmzhcn echo 缺省到 stdout ,用 >> 可以 redirect ,参见 http://sc.tamu.edu/help/general/unix/redirection.html
这种情况使用 echo 比较常见。 |
10
msg7086 2014-11-22 08:05:57 +08:00
@sbmzhcn 你完全说错了
1. echo只是把参数输送给1号文件描述符。如果你没有设定重定向,那么1号FD是指向STDOUT,然后是指向屏幕设备。如果设了重定向,那么1号FD就是你指定的文件了。 2. 应该说echo就能解决的问题,为什么要动用sed?前者是文件内容追加,后者是正则表达式匹配替换。 |
11
sbmzhcn OP |
12
dant 2014-11-22 12:46:22 +08:00 via iPhone
@sbmzhcn [ -e filename ] && echo 'balabalab' >> filename
|