我想创建将在后台运行的 c++ 程序或 bash 脚本,例如每当我使用所选命令时
pwd
它将捕获该命令的输出,比方说 ~Desktop/folder1
并将该输出更改为 You are in ~Desktop/文件夹 1
。因此,结果将是用户在使用命令 pwd
后只会看到 You are in ~Desktop/folder1
。
Pwd 命令只是示例,我想修改其他命令的输出,如 ls、ps 等。
我希望该脚本在所有终端中都能正常工作,也就是说,如果我打开另一个终端,它仍会捕获该终端中所选命令的输出。
问题:
甚至可以编写可以执行此类操作的 c++ 程序或 bash 脚本吗?
最佳答案
您可以将 shell 函数定义放入您的 bash 环境配置脚本中,这将具有您描述的效果。例如,
~/.bash_profile:
# ...
pwd() {
echo You are in $(command pwd)
}
export -f pwd
注意使用 command
命令来避免 shell 函数 pwd
中的递归。另请注意 export -f
将函数导出到子进程。对于要覆盖的每个命令,您都需要这样的代码段。
根据您的系统和配置,将它们放在 ~/.bashrc
中可能更合适。或者,如果您希望它适用于每个用户,那么您可以将它们放在系统范围的 bash 配置脚本之一中。但是请注意,用户将能够覆盖它。
关于c++ - 在后台 C++ 程序/bash 脚本中捕获 linux 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37258218/