输出换行 echo -e
echo -e 处理特殊字符
若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
///// 解析字符串内的转义字符
char ini_file[] = {
"[file00]\n"
"path = ./demo_ini/demo.h264\n"
"width = 1920\n"
"height = 1080\n"
"enable = 1\n"
"codec = h264\n"
"numbuf = 0\n"
"displaydelay = 0\n"
};
char cmd_buf[200] = {0};
/* 用 "" 包含命令字符串, 避免被截断*/
sprintf(cmd_buf, "echo -e \"%s\" > %s", ini_file, INI_PATH);
system(cmd_buf);
# cat ./demo_ini/demo.ini
[file00]
path = ./demo_ini/demo.h264
width = 1920
height = 1080
enable = 1
codec = h264
numbuf = 0
displaydelay = 0
#
输出不换行 echo -n
root@ubuntu:/# echo "123\n456"
123\n456
root@ubuntu:/# echo -n "123\n456"
123\n456root@ubuntu:/#
root@ubuntu:/# echo -e "123\n456"
123
456
root@ubuntu:/#
echo 追加至文件
在Shell编程过程很多时候会使用echo 并输入到日志文件中。写日志的时候有两种情况,一种是一次写入文件空,再写的时候就将之前的内容给覆盖掉,如何实现追加内容呢?
1.覆盖写入
echo "日志内容" > 文件
2.追加写入
echo "日志内容" >> 文件