84
84
我如何回声$something >> file.txt而不回车?
当我echo $something >> file.txt
时,会有一行新的行被追加到文件中。
如果我想在没有新行的情况下进行追加怎么办?
当我echo $something >> file.txt
时,会有一行新的行被追加到文件中。
如果我想在没有新行的情况下进行追加怎么办?
这就是echo -n
的作用。
printf
是非常灵活的,比echo
更具可移植性。就像C/Perl/etc的实现一样,如果你没有用\n
结束格式字符串,那么就不会打印新行:
printf "%s" "$something" >> file.txt
```。
如果你使用的是命令的输出,你可以将xargs与echo
/sbin/ip route|awk '/default/ { print $3 }' | xargs echo -n >> /etc/hosts
```结合使用。
tr
是另一种选择。
如果你使用echo
作为输入,你可以摆脱哪tr -d '\n'
。
这种技术在用管道输入其他命令的输出时也可以用(只有一行输出)。此外,如果你不知道文件的行尾是UNIX还是DOS,你可以使用tr -d '\n\r'
.
这里有一些测试表明这样做是有效的。
包括新行。
something='0123456789' ; echo ${something} | wc -c
11
UNIX换行:
something='0123456789' ; echo ${something} | tr -d '\n\r' | wc -c
10
DOS风格。
something='0123456789' ; echo ${something} | unix2dos | tr -d '\n\r' | wc -c
10
经BSD tr
和GNU tr
测试。