编辑

编辑

我有一位教授,他将家庭作业存储在多个文件中,这些文件分布在讲座文件夹中的不同子目录中,标题为“TODO:”我想将所有这些待办事项输出到 Nano 中的单个文本文件中,而不是从一个作业导航文件到另一个。

我尝试为这个命令创建一个别名,因为我经常使用它,但是每当我尝试执行它时,光标只是闪烁,什么也没有发生。

alias todo='cd /home/csc103/Desktop/shared/csc103-lectures && grep -Rw "TODO:" --after-context=6  --include="*.cpp" . > todo.txt && nano todo.txt'

我在这里做错了什么?


编辑

“什么也没发生”我的意思是光标不断闪烁并且没有出现下一个提示。如下图左侧终端窗格所示。 无额外提示

但是,当我使用 ctrl-C 强制退出进程时,我最终会进入我希望 todo 命令别名将我带到的目录。那里有一个 todo.txt 文件。 Csc103-lectures 是正确的目录

另外,如果有任何相关性,我将在 VirtualBox 中的 Arch Linux 安装上发出这些命令。

答案1

我已经明白了,谢谢各位大佬指点这里的问题是 grep 在 todo.txt 文件中递归搜索“TODO:”,然后将这些结果写回 todo.txt 文件。当我打开 todo.txt 时,它充满了一遍又一遍循环的相同文本。显然,我应该使用--exclude="todo.txt"中的选项grep。添加后,它可以完美运行。

相关内容