有没有已知的方法可以让 Linuxmake拒绝意外使用 GNU?在 Linux 中编辑或使用其他人的 Makefile 时,在 Makefile 中进行特定扩展?我的意思是,限制 GNU?Makemake按照 POSIX 中指定的方式运行并拒绝任何 GNU?Make 特定扩展?
该.POSIX专项的目标是不够的,按照“ 4.9特别内置目标名(gnu.org) ”。手册页没有提到这个命令行选项。
使用其他make实用程序可能是一种选择。
— 更新 2018-10-19 —
我仍然没有找到我的问题的直接答案,但这里至少有一个关于这个问题的文档,这个文档在我提出这个问题时并不存在: A Tutorial on Portable Makefiles (nullprogram.com)。
如何使most寻呼机正确显示从标准输入接收的文本中的颜色?
注意:我不确定它是否是most.
我没有遇到与lessand相同的问题more,只有 with most,否则它作为man.
我不是发布图片,而是邀请人们尝试此操作(仅当您已most安装时):
$ command apropos zip | command grep --color=always zip | command less
$ command apropos zip | command grep --color=always zip | command more
$ command apropos zip | command grep --color=always zip | command most
Run Code Online (Sandbox Code Playgroud)
less并more正确显示颜色,同时most显示带有额外“垃圾”^[[K包裹所有彩色文本区域的颜色。
令人惊讶的是,这是可以的:
$ (export PAGER=most; command man zip)
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了什么(手册页most没有帮助),滥用命令还是我应该将其报告为错误?
less(更新)的说明:正如 Sparhawk 在评论中提到的那样,less …
EINTR是所谓的可中断系统调用可能返回的错误。如果在系统调用运行时发生信号,则不会忽略该信号,并且为它定义了SA_RESTART未设置的信号处理程序并且该处理程序处理该信号,则系统调用将返回EINTR错误代码。
作为旁注,我经常ncurses在 Python 中使用这个错误。
POSIX 标准指定的这种行为背后是否有基本原理?可以理解可能无法恢复(取决于内核设计),但是,不在内核级别自动重新启动它的理由是什么?这是出于传统原因还是技术原因?如果这是出于技术原因,这些原因现在仍然有效吗?如果这是出于遗留原因,那么历史是什么?
考虑一个由 Sh 执行的 shell 脚本,而不是 Bash(我不能改变它,也不能使用 shebang,它被忽略了)。该&运营商的作品,但disown $!不和使得嘘抱怨“不认:未找到”。
如何从特定的 Sh 中分离后台进程?我的意思是,从 Shdisown做的和从 Bash做的一样。
Linux 有一个/proc目录和文件系统,据我所知,它不是 POSIX 的一部分。在每个/proc/$PID子目录中,是一个符号链接,cwd指向该PID进程的实际工作目录(该cwd链接始终是最新的)。
这个符号链接对于某些用例很方便,比如使用不同的 shell 和在两个 shell 之间交换文件(正式地,它们的工作目录)。
有没有一种简单的方法来获得类似的东西,只使用 POSIX 功能?
发表评论后,更精确:它不一定是链接和环境变量 lile $<PID>_CWD,也一样好,虽然乍一看,我不相信这样的解决方案存在。它必须易于引用(例如符号链接或环境变量),并且每次其他进程切换其工作目录时始终保持最新。
解决方案不一定是POSIX,最重要的是可移植性,但POSIX肯定是一种保证。