操作来自可执行文件的返回码
项目描述
受成功返回 1 的程序的启发,exesexe 允许您包装
对可执行文件的调用并有选择地覆盖其返回代码。例如,这允许您
将异常安装程序与配置管理
软件一起使用,该软件期望程序在成功时返回 0。
exesexe 将使用它接收到的第一个参数作为自己的指令,但所有
其他参数将不加修改地执行。该指令是一个
逗号分隔的列表,其中每个段可能具有以下形式之一:
```
1 白名单 1(转换为 0)
-1=2 用 2 替换 -1
5:8=9 替换 5、6、7 , 和 8 和 9
!1 黑名单 1 (根本不转换 1;将其他所有内容转换为 0)
*=3 用 3
```替换所有其他的
例子:
* `1,-1,2=3`
* 将 1 和 -1 转换为 0。
* 将 2 转换为 3。
* `!2`
* 不要转换 2 .
* 将其他所有内容转换为 0。
* `!-4=2`
* 不要转换 -4。
* 将其他所有内容转换为 2。
* `*=10`
* 无论如何都返回 10。
优先顺序是白名单、特定替换、黑名单,
然后是 *-替换,因此 `*=4,1=2,!3` 会将 1 转换为 2 而不是 4 或 0。
词汇顺序仅对重叠段很重要,例如`1=0,1=2`,
其中最右边的段覆盖左边的段。
假设您要运行可执行文件 `foo`。您可以发出以下任何一个:
```
exesexe 1 foo # 如果 foo 返回 1 则返回 0
exesexe 3=4 foo # 如果 foo 返回 3
exesexe *=0 foo # 总是返回 0
exesexe !2 foo # 如果 foo 则返回 0不返回 2
exesexe !2,3=4 foo # 如果 foo 返回 3,则返回 4;
# 否则,如果 foo 不返回 2,则返回 0;
# else, 传回 foo 的真实返回码
```你也可以使用exesexe
作为库:解释( “foo --bar”, 白名单=[1],
黑名单=[2],
替换={3:4,“*”:1}
)
```
对可执行文件的调用并有选择地覆盖其返回代码。例如,这允许您
将异常安装程序与配置管理
软件一起使用,该软件期望程序在成功时返回 0。
exesexe 将使用它接收到的第一个参数作为自己的指令,但所有
其他参数将不加修改地执行。该指令是一个
逗号分隔的列表,其中每个段可能具有以下形式之一:
```
1 白名单 1(转换为 0)
-1=2 用 2 替换 -1
5:8=9 替换 5、6、7 , 和 8 和 9
!1 黑名单 1 (根本不转换 1;将其他所有内容转换为 0)
*=3 用 3
```替换所有其他的
例子:
* `1,-1,2=3`
* 将 1 和 -1 转换为 0。
* 将 2 转换为 3。
* `!2`
* 不要转换 2 .
* 将其他所有内容转换为 0。
* `!-4=2`
* 不要转换 -4。
* 将其他所有内容转换为 2。
* `*=10`
* 无论如何都返回 10。
优先顺序是白名单、特定替换、黑名单,
然后是 *-替换,因此 `*=4,1=2,!3` 会将 1 转换为 2 而不是 4 或 0。
词汇顺序仅对重叠段很重要,例如`1=0,1=2`,
其中最右边的段覆盖左边的段。
假设您要运行可执行文件 `foo`。您可以发出以下任何一个:
```
exesexe 1 foo # 如果 foo 返回 1 则返回 0
exesexe 3=4 foo # 如果 foo 返回 3
exesexe *=0 foo # 总是返回 0
exesexe !2 foo # 如果 foo 则返回 0不返回 2
exesexe !2,3=4 foo # 如果 foo 返回 3,则返回 4;
# 否则,如果 foo 不返回 2,则返回 0;
# else, 传回 foo 的真实返回码
```你也可以使用exesexe
作为库:解释( “foo --bar”, 白名单=[1],
黑名单=[2],
替换={3:4,“*”:1}
)
```