linuxshel中怎么写eof

1.C语言如何输入EOF在C语言运行过程中,有时需要在终端手动输入EOF,其输入方法与操作系统有关 。
1 windows系统 。
实际上输入是在dos下面执行的,也就是运行时的那个黑底窗口 。在windows下输入EOF需要输入CTRL+Z 。
2 Linux/Unix/Mac操作系统 。
在这类操作系统下,要输入EOF需要输入CTRL+D 。
以上输入操作,均需要先按下CTRL键,不要抬起,再按下对应的D或Z键,抬起D或Z键,再抬起CTRL键 。组合功能键的输入流程都是这样的 。
在输入时,如键盘上有多个CTRL,左右CTRL均可使用,没有区别 。对于字母的输入,大小写也无关 。
部分系统运行时,会不支持即时输入,这样在输入功能键后,还需要再输入回车来使系统可以接收到按键,此类现象多见于windows编译器 。
如果系统支持按键回显,那么在输入成功后,会显示^Z或^D 。
2.linux bash shell 中这句命令如何理解 cat > test << "eof"[email protected]:~$ cat >test << "eof"
> adkf
> alkd
> 23
【linuxshel中怎么写eof】> eof
[email protected]:~$ cat test
adkf
alkd
23
[email protected]:~$cat 打印内容
>;输出到文件,由于Cat没有输入打印文件,默认从标准输入获取内容,
最后 >> "eof" 是指直到出现eof字符时结束 。
3.linux的Shel脚本l编程是做什么的系统管理员用的
1 省心省力
你要创建几十个用户,给他们家目录,创建samba密码,你一个个创建会搞死人的,写个脚本,执行一遍就完了
2 自动工作
自动在晚上3点备份数据库,你不可能晚上爬起来开电脑连接到公司服务器上去操作吧,这个写个脚本加到cronjob 完事
3 文本分析
给你一个很大的文本,分析里面的邮件地址出现了多少次,你不可能一个个数吧,数一年都数不完,写个脚本几分钟就统计出来了,awk只需要一行,这也是腾讯的一个面试题
做linux sa不会这个是不现实的,不仅会,而且要精通,但是你只会这个 shell也不行,因为搞linux的还要求会其他的东西
4.C语言 EOF是什么这里的"文字流",可以是文件(file),也可以是标准输入(stdin) 。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上 。int c;
while ((c = fgetc(fp)) != EOF) { putchar (c); }很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了 。但是,后来我发现,EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1 。#define EOF (-1)于是,我就困惑了 。如果EOF是一个特殊字符,那么假定每个文本文件的结尾都有一个EOF(也就是-1),还是可以做到的,因为文本对应的ASCII码都是正值,不可能有负值 。但是,二进制文件怎么办呢?怎么处理文件内部包含的-1呢?这个问题让我想了很久,后来查了资料才知道,在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1) 。至于系统怎么知道文件的结尾,资料上说是通过比较文件的长度 。所以,处理文件可以写成下面这样: int c; while ((c = fgetc(fp)) != EOF) { do something }这样写有一个问题 。fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF 。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾 。上面的代码feof()版本的写法就是: int c; while (!feof(fp)) { c = fgetc(fp); do something; }但是,这样写也有问题 。fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾 。所以,按照上面这样写法,如果一个文件含有n个字符,那么while循环的内部操作会运行n+1次 。所以,最保险的写法是像下面这样: int c = fgetc(fp); while (c != EOF) { do something;