本文介绍如何在 NewIDE 中创建和编辑 Shell 文件,配置执行资源、启动参数及依赖资源,并查看参数预览和调试记录。
您需要具备当前目录的文件创建或编辑权限,以及计算资源组的使用权限。镜像中应包含脚本所需的 Shell 运行时和系统命令。访问外部系统时,还需要相应网络条件和业务权限。
Shell 暂不提供 IDE 级断点调试,也不提供 SSH 远程执行或 SSH 隧道配置。调试通过运行当前脚本和检查日志完成。
进入项目的 Workspace,在有权限的目录中创建 Shell 文件,或打开已有 .sh 文件。
编写并保存脚本。
以创建 hello_shell.sh为例,可以参考下面的最小脚本内容:
#!/bin/bash set -euo pipefail printf 'Shell 文件运行成功\n' printf 'Bash 版本:%s\n' "$BASH_VERSION"
注意
该示例使用 Bash。#!/bin/bash 用于声明脚本期望的解释器;执行前需确认所选运行镜像包含 Bash,而不是在执行设置中选择 /bin/bash。
单击页面右侧相应的图标,分别配置执行设置、参数设置和参数预览。
说明
确认当前打开的是要运行的 .sh 文件,再配置相应信息。
通过编辑器右侧的执行设置、参数设置和参数预览按钮,查看当前文件的配置。
通过执行设置功能,可以配置运行所需的计算资源、镜像、启动参数、环境变量、依赖资源和超时时间。
配置项 | 说明 |
|---|---|
计算资源组 | 提供执行所需的计算资源与网络能力。 |
镜像地址 | 填写运行镜像地址。镜像需包含脚本所需的 Shell 运行时、系统命令和相关依赖。 |
资源配置 | 按 CU 选择资源规格,1 CU 对应 1 Core、4 GB 内存。可用规格以所选计算资源组为准。 |
依赖资源 | 点击选择框右侧按钮,从 Workspace 选择依赖文件;实际支持类型以运行环境为准。 |
环境变量 | 配置脚本运行时需要的环境变量,格式为 KEY=VALUE。多个变量用英文分号 |
启动参数 | 填写程序启动时传入的命令行参数,每行一个参数;Shell 脚本可通过 $1、$2 按顺序读取。 |
超时时间(秒) | 设置单次运行的超时时间,单位为秒;0 表示不限制运行时长。 |
注意
保存配置后再运行。文件开发页不提供工作目录、运行身份或“继承/集成项目运行配置”选项,也不单独配置 VPC、子网或安全组。
以下说明用于补充镜像地址和依赖资源的配置边界,避免将解释器选择、系统依赖安装和依赖文件选择混为一类。
Shell 文件没有独立的解释器选择项。脚本使用的解释器和系统命令由运行镜像提供;如果脚本首行声明 #!/bin/bash,则所选镜像需要包含 Bash。
Shell 的系统依赖通过镜像准备;脚本使用 curl、tar 等命令前,应确认镜像中存在相应工具。依赖资源选择用于引用文件,不等同于安装系统软件,也不提供依赖包自由文本输入。
辅助脚本、压缩包和配置文件的支持类型与准备规则应以运行环境为准。选择后检查路径和权限;单文件实际工作目录由平台解析,不能假定本地绝对路径在运行容器中存在。
在参数设置中维护当前 Shell 文件使用的参数列表。您可以新增、编辑或删除参数。添加参数时,可以选择自定义、项目参数或外部传参三种参数类型,并填写参数名称和参数值。例如,添加自定义参数 biz_date,值为 20261013,用于验证业务日期。
注意
$1、$2 等位置参数读取。读取时建议使用双引号,例如 "$1",避免包含空格的参数被拆分或触发非预期的通配符展开。参数预览用于检查转换结果,不创建调度计划或 Pipeline 实例,也不会自动执行 Shell 脚本。参数预览的操作步骤如下:
调试操作使用当前开发配置,不产生正式 Pipeline Activity 实例。脚本包含上传、写入或删除等操作时,运行会实际执行这些逻辑,应使用测试数据验证。
运行调试操作步骤如下:
说明
示例脚本运行成功后,日志应包含 Shell 文件运行成功 和 Bash 版本。编写脚本时,请确保业务逻辑失败时返回非零退出码,避免最后一条成功命令掩盖前面的错误。
Shell 代码与开发运行默认值分别保存,例如:
hello_shell.sh .hello_shell.sh.metadata.yaml
保存文件时一并保存该文件的执行设置。再次打开文件后,应核对计算资源、镜像地址、资源规格和启动参数。
在 Pipeline 中添加 Shell Activity 并选择 .sh 文件。首次选择时,可从文件调试配置填充空字段。Activity 保存后独立维护,后续文件调试配置变化不会自动覆盖正式配置。
正式执行前核对 Activity 的文件路径、资源、参数和依赖资源;当前页面不提供独立的工作目录配置项。
问题 | 排查方法 |
|---|---|
| 检查运行镜像是否包含相关系统命令。 |
Bash 语法报错 | 检查镜像是否包含 Bash,以及实际运行时是否支持脚本使用的语法。 |
相对路径无法找到文件 | 检查依赖资源准备、实际运行路径和权限;不要使用本机绝对路径。 |
业务失败但运行成功 | 检查退出码和关键命令的错误处理。 |
参数预览正确但脚本参数为空 | 检查参数保存、实际传入顺序与脚本读取方式。 |
单文件成功,Pipeline 失败 | 对比解释器、镜像、资源、参数和正式运行权限。 |