好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

linux echo指令学习 - Linux操作系统:Ubuntu_Centos_De


linux echo指令学习

 

功能说明:显示文字。

 

语 法:echo [-ne][字符串] 或 echo [--help][--version]

  www.2cto.com  

补充说明:echo默认会将结果字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

 

参 数:

-n 不要在最后自动换行

 

-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

 

\a 发出警告声;

 

\b 删除前一个字符;

 

\c 最后不加上换行符号;

 

\f 换行但光标仍旧停留在原来的位置;

 

\n 换行且光标移至行首;

  www.2cto.com  

\r 光标移至行首,但不换行;

 

\t 插入tab;

 

\v 与\f相同;

 

\\ 插入\字符;

 

\nnn 插入nnn(八进制)所代表的ASCII字符;

 

--help 显示帮助

 

--version 显示版本信息

 

echo要变换颜色的时候,要使用参数-e

 

格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"

 

例如:

 

echo -e "\033[41;36m something here \033[0m"

 

其中41的位置代表底色, 36的位置是代表字的颜色

 

那些ascii code 是对颜色调用的始末.

 

\033[ ; m …… \033[0m

 

让字体变为红色并且不停的闪烁

 

#echo -e "\033[31m \33[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"

  www.2cto.com  

或者

 

#echo -e "\033[31m \033[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"

 

 

40:黑

 

41:深红

 

42:绿

 

43:黄色

 

44:蓝色

 

45:紫色

 

46:深绿

 

47:白色

 

 

30:黑

 

31:红

 

32:绿

 

33:黄

 

34:蓝色

 

35:紫色

 

36:深绿

 

37:白色

 

===============================================ANSI控制码的说明

  www.2cto.com  

\33[0m 关闭所有属性

 

\33[1m 设置高亮度

 

\33[4m 下划线

 

\33[5m 闪烁

 

\33[7m 反显

 

\33[8m 消隐

 

\33[30m -- \33[37m 设置前景色

 

\33[40m -- \33[47m 设置背景色

 

\33[nA 光标上移n行

 

\33[nB 光标下移n行

 

\33[nC 光标右移n行

 

\33[nD 光标左移n行

 

\33[y;xH设置光标位置

 

\33[2J 清屏

 

\33[K 清除从光标到行尾的内容

 

\33[s 保存光标位置

 

\33[u 恢复光标位置

 

\33[?25l 隐藏光标

 

\33[?25h 显示光标

  www.2cto.com  

Linux的echo命令, 在shell 编程 中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。 

该命令的一般格式为: echo [ -n ] 字符串 

其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。

 

ECHO命令是大家都熟悉的DOS批处理命令的一条子命令,但它的一些功能和用法也许你并不是全都知道,不信你瞧:

 

1. 作为控制批处理命令在执行时是否显示命令行自身的开关 格式:ECHO [ON|OFF] 如果想关闭[ECHO OFF]命令行自身的显示,则需要在该命令行前加上[@]。

 

2. 显示当前ECHO设置状态 格式:ECHO

 

3. 输出提示信息格式:ECHO信息内容上述是ECHO命令常见的三种用法,也是大家熟悉和会用的,但作为DOS命令淘金者你还应该知道下面的技巧:

  www.2cto.com  

4. 关闭DOS命令提示符 在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出现。

 

5. 输出空行,即相当于输入一个回车格式:ECHO.值得注意的是命令行中的[.]要紧跟在ECHO后面中间不能有空格,否则[.]将被当作提示信息输出到屏幕。另外[.]可以用,:;]/[/]+等任一符号替代。在下面的例子中ECHO.输出的回车,经DOS管道转向作为TIME命令的输入,即相当于在TIME命令执行后给出一个回车。所以执行时 系统 会在显示当前时间后,自动返回到DOS提示符状态: C:〉ECHO.|TIME ECHO命令输出空行的另一个应用实例是:将ECHO.加在自动批处理文件中,使原本在屏幕下方显示的提示画面,出现在屏幕上方。

 

6. 答复命令中的提问格式:ECHO答复语|命令文件名上述格式可以用于简化一些需要人机对话的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,它是通过DOS管道命令把ECHO命令输出的预置答复语作为人机对话命令的输入。下面的例子就相当于在调用的命令出现人机对话时输入[Y]回车: C:〉ECHO Y|CHKDSK/F C:〉ECHO Y|DEL A :*.*

 

7. 建立新文件或增加文件内容 格式:ECHO 文件内容>文件名 ECHO 文件内容>>文件名 例如:C:〉ECHO @ECHO OFF〉AUTOEXEC.BAT建立自动批处理文件 C:〉ECHO C:/CPAV/BOOTSAFE〉〉AUTOEXEC.BAT向自动批处理文件中追加内容 C:TYPE AUTOEXEC.BAT显示该自动批处理文件 @ECHO OFF C:/CPAV/BOOTSAFE

 

8. 向打印机输出打印内容或打印控制码 格式:ECHO 打印机控制码>PRN ECHO 打印内容>PRN 下面的例子是向M-1724打印机输入打印控制码。<Alt>156是按住Alt键在小键盘键入156,类似情况依此类推: C:〉ECHO 〈Alt〉+156〈Alt〉+42〈Alt〉+116〉PRN(输入下划线命令FS*t) C:〉ECHO 〈Alt〉+155@〉PRN(输入初始化命令ESC@) C:〉ECHO.〉PRN(换行)

  www.2cto.com  

9. 使喇叭鸣响 C:〉ECHO ^G [^G]是用Ctrl+G或Alt+007输入,输入多个^G可以产生多声鸣响。使用方法是直接将其加入批处理文件中或做成批处理文件调用。

 

10.执行ESC控制序列修改屏幕和键盘设置我们知道DOS的设备驱动程序ANSI.SYS提供了一套用来修改屏幕和键盘设置的ESC控制序列。如执行下述内容的批处理程序可以把功能键F12定义为DOS命令[DIR/W],并把屏幕颜色修改为白色字符蓝色背景。 @ECHO]←[0;134;]DIR/W];13p @ECHO]←[1;37;44m (注:批处理文件中[←]字符的输入方法是在编辑状态下按Alt中小键盘上的27)

-------------------------------------------------------------------------------------------------------------------------------------------

初识Shell socket

 

#include<netdb.h>

 

#include<sys/socket.h>

 

#include<errno.h>

  www.2cto.com  

#include<stdio.h>

 

#include<unistd.h>

 

 

 

int main()

 

{

 

int socketfd;

 

socketfd = socket (AF_INET, SOCK_STREAM, 0);

 

//aga:create server socket for listening

 

if ( socketfd == -1)

 

{

 

printf("errno=%d",errno);

 

exit(1);

 

}

 

else

 

{

 

printf("socket create successfully");

  www.2cto.com  

}

 

struct sockaddr_in sa;

 

bzero(&sa, sizeof(sa));

 

sa.sin_family = AF_INET;

 

sa.sin_port = htons(ECHO_PORT);

 

sa.sin_addr.s_addr = htons(INADDR_ANY);

 

//aga: set socket port and address

 

bzero(&(sa.sin_zero),8);

 

if( bind( socketfd, (struct sockaddr *)&sa, sizeof(sa) )!=0)

 

//aga: bind socket with socket address

 

{

 

printf("bind failed");

 

printf("errno=%d",errno);

  www.2cto.com  

}

 

else

 

{

 

printf("bind successfully");

 

}

 

//aga: after successfully binding, begin to listen!

 

if(listen(socketfd,MAX_CLIENT_NUM)!=0)

 

{

 

printf("listen error");

 

exit(1);

  www.2cto.com  

}

 

else

 

{

 

printf("listen successfully");

 

}

 

int clientfd;

 

struct sockaddr_in clientAdd;

 

//aga: client socket address

 

char buff[101];

  www.2cto.com  

socklen_t len = sizeof(clientAdd);

 

int closing=0;

 

while( closing == 0 && ( clientfd= accept( socketfd,(struct sockaddr*)&clientAdd,&len))>0)

 

//aga: listening socket waits for accepting client connection

 

{

 

send(clientfd,"connect successfully!",21,0);

 

int n;

 

while( (n=recv( clientfd,buff,100,0))>0)

 

//aga: after connection established, server begins to recvive msg

  www.2cto.com  

{

 

printf("number of receive bytes = %d ",n);

 

write ( STDOUT_FILENO, buff, n);

 

send( clientfd,buff,n,0);

 

buff[n]=' ';

 

if( strcmp(buff,"quit")==0)

 

{

 

break;

 

}

 

else if( strcmp(buff, "close")==0)

 

{

 

closing =1;

 

printf("server is closing ");

  www.2cto.com  

break;

 

}

 

}

 

close(clientfd);

 

}

 

close(socketfd);

 

return 0;

 

}
 

查看更多关于linux echo指令学习 - Linux操作系统:Ubuntu_Centos_De的详细内容...

  阅读:68次