练习 5:`cat`
做完练习 4,你开始了解阻碍你的东西。spike 研究是一个简单的挑战,即如何从用户获取命令行参数。练习的真正目的是记录实验笔记,了解你需要做什么来开始。你有没有发现需要改变的东西?任何奇怪的习惯或配置问题?在这个练习中,你将创建一个名为cat
的简单命令的副本,但你的真正目的是选择一件事来更改你的配置,以便你更快入门。记住,关键不是你的cat
的实现。而是你的起步有多快,以及在45分钟内做一些有用的事情。
与以前的练习一样,坚持45分钟的最后期限。为你在练习上花费多少时间设置限制,是让你进入编码模式的有用技巧。事实上,如果你每天花45分钟的时间来热身,这是今后的理想实践。在你可以做到它之前,你需要一个更好的开始,所以找到你今天破除的障碍,让我们开始吧。
警告
我会再说一次,使之更清楚:你不能在这个练习中失败。如果你将45分钟的限制看做一个分级练习,并存在你应该或不应该做的有多好的任何期望,那么你就错了。理解这 45 分钟的最佳方式是,它仅仅是一个机制,在后面踢你,让你往前走。这不是一个考验。我重申,这不是一个考验。不断告诉自己,放松下来,尽管去做吧。
挑战练习
cat
命令是“链接”的缩写,它最常用于将文件的内容转储到屏幕上。这样使用:
cat somefile.txt
该命令输出somefile.txt
的内容。这实际上并不是原始目的。最初是用于组合多个文件 - 因此它被称为cat
。为此,只需将每个文件添加到cat
:
cat A.txt B.txt C.txt
然后,cat
命令遍历每个文件,将其内容输出出来,然后在遍历完所有文件时退出。问题是,这怎么能连接文件?为此,还需要使用终端中找到的 POSIX 文件重定向功能:
cat A.txt B.txt C.txt> D.txt
你应该熟悉>
符号的用法,如果不是,那么你需要复习基本的 Unix shell 操作。它只需要cat
命令的标准输出(在这种情况下,它是A.txt B.txt C.txt
的全部内容组合),并将其写入右侧的D.txt
文件。
你需要尽快重新实现cat
命令,使用你从练习 4 中学到的命令行参数。请记住,要执行标准输出,只需使用 Python 中的print
即可。要了解更多有关cat
的信息,请使用man
命令:
man cat
这是cat
命令的手册,在45分钟内,你可以得到尽可能多的实现奖励积分。
答案
你可以在 github 的 http://bit.ly/lmpthwsolve 仓库中找到我的解决方案。它在ex5/
中,你会看到我完成了一个相当简单和肮脏的解决方案。如果你开始这个练习并且担心质量或创造力,那么你这样做是错误的。你的任务是马虎,快速,使之完成。时间限制的关键是,让你摆脱这个想法,每次按下键盘,都必须写出完美的代码来崇拜。尽你所能去做,然后之后你可以分析它并看到改进的地方。
研究性学习
- 有没有任何
cat
的惊人功能,你从未使用或难以实现? - 你能从你的启动流程中破除一个障碍嘛?这比实现
cat
更重要,所以如果你没有破除这个障碍,那么你需要再做一遍这个练习。 - 你能找到更多阻碍你的东西吗?简单的事情,如你的颈椎病,因为你座位太低了?没有一个很好的键盘?你的精神状态怎么样?有没有你以为阻止你的东西?你能停止思考它们吗?
深入学习
这不是一本自助手册,我不会修改你的心智,但我发现,学习新事物的巨大障碍,不是主题,而是你的恐惧。如果在这个练习中发现,缺失的想法或恐惧让你无法开始,那么我建议你在实现 45 分钟的黑魔法之前,先花 10 分钟记录你感觉如何。写下你的恐惧,焦虑和感觉将表达他们,并帮助你了解,担心一些事情是非常不实际的,因为它们就像 45 分钟的黑魔法那样简单。尝试一下。你会感到惊讶的是,关于你的感觉的 10分钟的写作会改变你的感觉。