-
- yes命令简介
- yes命令的具体实现
- yes命令的具体使用
- 问题思考
yes命令简介
yes命令在被kill之前重复输出指定的字符串.
语法格式有两种:
1. yes
2. yes [STRING]
第一种格式yes后不跟具体的字符串,此时该命令向终端重复输出
y
字符
第二种格式将指定的字符串重复的向终端输出。如使用命令
yes 'hello,world'
将重复的向终端输出
hello,world
字符串。
yes命令的具体实现
if (argc >= && *argv[] == '-')
show_usage();
if (argc == ) {
while ()
if (puts("y") == EOF) {
perror("yes");
return ;
}
}
while ()
for (i = ; i < argc; i++)
if (fputs(argv[i], stdout) == EOF || putchar(i == argc - ? '\n' : ' ') == EOF) {
perror("yes");
return ;
}
return ;
yes命令的具体使用
1. 如果我们希望生成一个大文件,可以使用yes命令进行快速生成。如:
yes 'generate big file'>>testfile
2. 和某些需要应答命令进行搭配使用。如:
yes|rm -i testfile
问题思考
之前在介绍
kill
命令的时候说过,yes命令会一直重复输出字符串直到被kill掉。但
yes|rm -i testfile
并没有主动kill掉yes,那为什么这行命令执行后yes命令会关闭?(提示:可以查看shell的作业管理以及linux的管道知识)。