c - 在 shell 原型(prototype)中实现 globbing

标签 c bash shell

我正在为我的周末作业实现一个 linux shell,但我在将通配符匹配作为 shell 中的一个功能实现时遇到了一些问题。众所周知,shell 本身就是一种完整的语言,例如bash、ksh 等。我不需要实现完整的功能,如控制结构、作业等。但是如何实现 *

快速分析得出以下结果:

echo *

列出当前目录下的所有文件。这是 shell 的唯一逻辑表现吗?我的意思是,不考虑 bash 的语言特定特性,这是 shell 内部所做的吗?将 * 替换为当前目录中与模式匹配的所有文件?

我也听说过 Perl Compatible Regular Expression ,但使用第三方库似乎很复杂。

有什么建议、链接等吗?对于 bash,我也会尝试查看源代码。

最佳答案

这称为“globbing”,执行此操作的函数名称相同:glob(3)

关于c - 在 shell 原型(prototype)中实现 globbing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793293/

相关文章:

将指针的值复制到变量,指针作为参数传递 C 程序

python - 在 Linux 中编写守护进程或服务的示例

php - 让 Cron 作业在后台执行脚本并运行 15 小时

shell - 从 shell 脚本中的文件中读取数字

c - 仅将整数扫描到数组中

c - 卡在客户端的 while 循环中

linux - 在 bash 脚本中包含相对路径中的二进制文件

bash - 排序和删除一行中的重复单词

Bash 脚本 - 如何仅调整最近未修改的图像大小?

linux - 使用命令的 tcsh 登录 shell