如何解决带有 jenkins 部署的 sed shell
我目前正在做一些事情,而现在我什至怀疑我正在做的事情是否可行。
我想从 jenkins SSH 到 shell 脚本并使用变量形成 git 存储库中的 rc 文件。 (Shell 脚本和 rc 文件在同一个 repo 中)
我尝试过的一切都没有奏效,现在我开始怀疑这是否可行。
这是我的本地脚本,但我在 jenkins 上得到了相同的输出。
docker exec -it test-container bash 'sed -f <(printf "s/${DOMAIN}\.%s/www.&.${DOMAIN_SUFFIX_STAGE}/g\n" ${LANG_KEYS}) /var/www/foo/sed/test.txt > /var/www/foo/sed/new-2.txt'
无论我做什么我都会收到这个错误
bash: sed -f <(printf "s/${DOMAIN}\.%s/www.&.${DOMAIN_SUFFIX_STAGE}/g\n" ${LANG_KEYS}) /var/www/foo/sed/test.txt > /var/www/foo/sed/new-2.txt: No such file or directory
是的,我可以确认目录在那里
解决方法
这里有一个更简单的方法来重现您的问题:
$ bash "echo Hello"
bash: echo Hello: No such file or directory
发生这种情况是因为预期的语法是 bash yourfile
。您传递的字符串不是有用的文件名,因此失败。
要将字符串参数作为命令运行,您可以使用 bash -c commandstring
:
$ bash -c "echo Hello"
Hello
这使得 bash 将参数解释为要执行的 shell 命令,而不是要打开的文件名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。