You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Informatica IPC环境UNIX trailer生成脚本报exit code 126问题咨询

错误原因定位

Exit code 126为Shell标准错误码,对应三类触发原因:

  • 可执行文件权限不足:Informatica运行用户无$PMRootDir/scripts/exec_trailer_unix.sh的执行权限,或无目标文件目录$PMRootDir/TgtFiles的读写权限
  • 语法兼容问题:MacOS默认的/bin/sh实际软链接到Bash,支持Bash扩展语法,而Informatica IPC环境的/bin/sh为纯POSIX兼容Shell,不支持你脚本中用到的"0"{1..8}大括号扩展语法,执行时触发报错
  • 路径解析异常:调用上下文未正确加载$PMRootDir环境变量,或待统计的body.txt文件不存在、无读权限
修复步骤

1. 权限修复

执行以下命令为脚本添加可执行权限,同时确认Informatica运行用户对脚本目录、目标文件目录有对应读写权限:

chmod +x $PMRootDir/scripts/exec_trailer_unix.sh

2. 脚本内容修改

替换非POSIX兼容语法,同时简化trailer生成逻辑,适配所有UNIX环境:

#!/bin/sh

TgtFiles=$1
TgtFilesBody=$TgtFiles/body.txt
TgtFilesTrailer=$TgtFiles/trailer.txt

# 统计文件行数,兼容POSIX标准,避免sed不同版本差异
string1=$(wc -l < "$TgtFilesBody" | tr -d ' ')
# 生成前缀:T + 7位左补零的行数
prefix=$(printf "T%07d" "$string1")
# 生成32位总长度的trailer,剩余位补0(可根据实际需要调整总长度)
trailer=$(printf "%-32s" "$prefix" | tr ' ' '0')
# 输出到文件
echo "$trailer" > "$TgtFilesTrailer"

3. 调用命令优化

去掉不必要的sh -c封装,直接调用脚本即可,避免额外的Shell嵌套兼容问题:

$PMRootDir/scripts/exec_trailer_unix.sh $PMRootDir/TgtFiles
验证说明

修改后生成的trailer完全符合需求:固定T为开头,后接7位左补零的行数,剩余位补0,总长度与你给出的示例一致。

内容的提问来源于stack exchange,提问作者Fer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 02:45:08