![echo + 附加字符串 + linux](https://linux22.com/image/594672/echo%20%2B%20%E9%99%84%E5%8A%A0%E5%AD%97%E7%AC%A6%E4%B8%B2%20%2B%20linux.png)
请指教如何做 - (此操作是在 Linux 机器上进行的)
为什么我用 echo 添加的字符串“append”位于“spb_IP=172.17.100.122”行之后
而不是在“spb_IP=172.17.100.122”这一行下面????
更多文件
spa_IP=172.17.100.121
spb_IP=172.17.100.122
echo“附加”>>文件
更多文件
spa_IP=172.17.100.121
spb_IP=172.17.100.122append this
答案1
这是因为该文件没有以 . 结尾\n
。
hexdump -C file
00000000 73 70 61 5f 49 50 3d 31 37 32 2e 31 37 2e 31 30 |spa_IP=172.17.10|
00000010 30 2e 31 32 31 0a 73 70 61 5f 49 50 3d 31 37 32 |0.121.spa_IP=172|
00000020 2e 31 37 2e 31 30 30 2e 31 32 32 |.17.100.122|
注意文件以 0x32 结尾,这是 ASCII 码2
当你附加它时它变成
hexdump -C file
00000000 73 70 61 5f 49 50 3d 31 37 32 2e 31 37 2e 31 30 |spa_IP=172.17.10|
00000010 30 2e 31 32 31 0a 73 70 61 5f 49 50 3d 31 37 32 |0.121.spa_IP=172|
00000020 2e 31 37 2e 31 30 30 2e 31 32 32 61 70 70 65 6e |.17.100.122appen|
00000030 64 0a
请注意,正如您所观察到的,122 直接进入附加122append
要解决你的“问题”,你需要
echo -e "\nappend"
添加缺失的\n
。
hexdump -C file
00000000 73 70 61 5f 49 50 3d 31 37 32 2e 31 37 2e 31 30 |spa_IP=172.17.10|
00000010 30 2e 31 32 31 0a 73 70 61 5f 49 50 3d 31 37 32 |0.121.spa_IP=172|
00000020 2e 31 37 2e 31 30 30 2e 31 32 32 0a 61 70 70 65 |.17.100.122.appe|
00000030 6e 64 0a |nd.|
现在,122 和附加部分之间有一个.
,代表 0x0a(ASCII 换行符)字符。