【发布时间】:2017-02-14 11:13:57
【问题描述】:
我正在 jenkins 中执行参数化构建以计算编号。文件中具有 1 个文件参数的行数。它的文件位置是pqr。脚本文件名为linecount.sh,保存在远程服务器上。当我尝试使用命令 sh linecount.sh 文件名执行它时,它在 jenkins 中完美运行。但是当我从参数中删除文件名并执行与参数化构建相同的脚本时,它在控制台上显示以下错误:
Started by user Prasoon Gupta
[EnvInject] - Loading node environment variables.
Building in workspace users/Prasoon/sample_programs
Copying file to pqr
[sample_programs] $ /bin/sh -xe /tmp/hudson3529902665956638862.sh
+ sh linecount.sh
PRASOON4
linecount.sh: line 15: parameterBuild.txt: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我正在从本地机器上传文件 (parameterBuild.txt)。为什么会出现这个错误?
我的疑问是在 shell 脚本中,我使用了 $1 的参数。当我将文件作为参数时,如何引用它。
【问题讨论】:
-
确保参数文件按预期插入到工作区中,例如在你的 shell 命令中执行
ls -l。 -
谢谢,但我想直接从我的本地机器上传它,想让我的工作对用户更友好。
-
是的,明白这一点。但是为了隔离问题,如果在作业配置中将
ls -l作为shell 命令的一部分运行会发生什么?例如。它是否列出了parameterBuild.txt或任何其他文件? -
不,它没有在此处列出 parameterBuild.txt,但在此处创建了一个与我的文件位置的逻辑名称相同的新文件(此处为 pqr),其中包含 parameterBuild.txt 中的所有内容。
-
啊,我明白了,我的错,误读了你的一些问题。我已经发布了答案。
标签: jenkins