这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行的命令 hexec
程序:
您的姓名
hexec - 一个流程执行挂钩工具
概要
执行[表达式] [cmd] [参数...]
商品描述
hexec 是一个挂钩进程执行调用(系统调用的 exec 系列)的工具。 你可以
定义一个针对任何挂钩的 exec 调用执行的表达式。 这种表达可能
还包含一个替换 exec 调用。
配置 概要
以下是 hexec 选项的摘要。
--帮助 | -h 打印选项/expr 摘要页面
--版本 | -v 打印 hexec 版本
--注销| -lo 设置错误的输出文件和 -print 输出
配置
-h 打印选项/表达式摘要页面
- 帮帮我 打印选项/表达式摘要页面
它 为错误和-print 输出设置输出文件。 如果写作,这可能是必需的
到 stderr 可能会导致故障,因为某些进程从 stderr 和
期待一个明确定义的输出。
表情
该表达式针对所有流程执行调用执行。 如果表达式返回
是的,跳过原始调用。
-和
-a
如果两个表达式都返回 true,则返回 true。 如果左边返回false,右边
表达式永远不会执行。
-要么
-o
如果两个表达式之一返回真,则返回真。 如果左边返回真,则
永远不会执行正确的表达式。
-路径
如果可执行文件的路径匹配,则返回 true . 是一个bash
兼容的通配符模式。
-ipath
与 -path 相同,但不区分大小写。
-芋头
如果可执行文件的基本名称匹配,则返回 true . 是一个
bash 兼容的通配符模式。
-我的名字
与 -name 相同,但不区分大小写。
-包含
如果可执行文件的路径包含字符串,则返回 true .
- 包含
与 -contains 相同,但不区分大小写。
-打印 打印被调用进程的所有参数。 返回始终为真。
执行 [参数...] ;
执行以 [args...] 作为参数。 该表达式必须以
一个分号。 您可以使用参数占位符和 [args...](见下文)。
此表达式始终返回 true。
注意: 请注意,您可能需要转义或引用终止
分号不要混淆你的外壳。
-sh
口译 as a shell script by invoking / bin / sh的 与论点 -c
' '. 您可以在里面使用参数占位符. Please note that -sh
只需要一个参数而不是一个可变的参数列表(如 -exec
做)。 使用 -sh 与使用相同 执行 sh -c .
占位符 用于 执行 表达
每个 -exec 表达式都可以使用参数列表中的占位符来获取信息
来自原始的 exec 调用。 每个占位符都以 { 开头,以 } 结尾。 使用 \{ 如果你
想在参数列表中使用 {。 占位符在 -exec 时被替换
表达式被评估。
占位符类型:
{不是} 将替换为原始调用中的参数数量。
{ }
将替换为 index 处的原始参数. 示例:{1} 会给出
第一个论点。 你可以预先带有占位符标志。
{} 将替换为原始调用中的所有参数。 每个参数是
用空格隔开。 您可以使用占位符标志。
注意: 可执行文件名称也被视为参数。 这意味着像这样的调用
“echo test”将产生两个参数,“echo”和“test”。
持票人 旗帜
s 每个参数都作为单个参数插入,而不是连接所有
参数。
考虑参数“a”、“b”和“c”。 没有 s, 执行 {} \; 会导致
执行 'a b c' \;,在许多情况下这不是您想要的。 执行 {s} \; 然而
会导致 执行 '一种' '乙' 'c' \;.
q 引用每一个论点。
e 转义所有非字母数字字符。 这个标志在使用“sh
-c <...>" 在 -exec 表达式中。
国际私人包机价格项目范例
执行 回音 {} \; 随着电话 '一种' '乙' 'c'
结果:'回声''abc'
执行 回音 {q} \; 随着电话 '一种' '乙' 'c'
结果:'回声''a''b''c'
执行 sh -c '回声 {}; {}' \; 随着电话 '嘘' '-C' 'gcc 直流 >> 日志.txt'
结果: 'sh' '-c' 'echo sh -c gcc dc >> log.txt; sh -c gcc dc >> log.txt'
请注意,这不会如您所愿,因为 >> 处理错误
在这种情况下。
执行 sh -c '回声 {e}; {}' \; 随着电话 '嘘' '-C' 'gcc 直流 >> 日志.txt'
结果: 'sh' '-c' 'echo sh \-c gcc\ d\.c\ \>\>\ log\.txt; sh -c gcc dc >>
日志.txt'
变化 TO 过程
hexec 会向挂钩的进程添加一些环境变量。 这些是(可能不是
完全的):
LD_预载
hexec 将 libhexec-hook.so 添加到预加载库列表中。
HEXEC_EXPR_SHM
包含内部共享内存对象的名称。
HEXEC_LOG_FD
包含错误和 -print 输出的文件描述符。
请不要修改这些环境变量。 使用这些时也要小心
变量,因为变量的名称和内容将来可能会发生变化。
示例
执行 -芋头 'gcc' 执行 缓存 {s} \; 使
调用 make,然后它会多次调用 gcc。 每个的可执行文件名
挂钩进程执行针对文件模式“gcc”和“ccache {s}”进行测试
每次找到匹配项时都会调用。 '{s}' 将被替换为原来的(
上钩)呼叫。 在这个例子中,对“gcc -o test.o test.c”的调用将被替换
使用“ccache gcc -o test.o test.c”
如何 IT 工作
ALL
使用 onworks.net 服务在线使用 hexec