首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注释:“`cd:太多的争论”

注释:“`cd:太多的争论”
EN

Stack Overflow用户
提问于 2022-04-14 23:11:15
回答 1查看 479关注 0票数 0

我正在尝试增加新的部分,在我们的游戏手册,这是通过詹金斯运行。我是cd: too many arguments的错误。

无意义剧本代码

代码语言:javascript
复制
- name: "obfuscating python code"
  command: "cd /opt/company_name/{{ app_name }}/current/lib/python3.6/site-packages/{{ app_module }}/ & pyarmor obfuscate --src='.' -r __init__.py & cp -r dist/* . & rm -rf dist & cd -"

运行ansible剧本的jenkins犯了这样的错误

代码语言:javascript
复制
TASK [python-app : obfuscating python code] ************************************
fatal: [server]: FAILED! => {"changed": true, "cmd": ["cd", "/opt/company_name/app-name/current/lib/python3.6/site-packages/app_name/", "&", "pyarmor", "obfuscate", "--src=.", "-r", "__init__.py", "&", "cp", "-r", "dist/*", ".", "&", "rm", "-rf", "dist", "&", "cd", "-"], "delta": "0:00:00.005432", "end": "2022-04-14 23:02:46.568316", "msg": "non-zero return code", "rc": 1, "start": "2022-04-14 23:02:46.562884", "stderr": "/bin/cd: line 2: cd: too many arguments", "stderr_lines": ["/bin/cd: line 2: cd: too many arguments"], "stdout": "", "stdout_lines": []}

UPDATE:我按照建议更新了代码以及更多的命令,我希望在运行pyarmor之前激活python虚拟env,它现在在No such file or directory: 'source'中失败了

代码语言:javascript
复制
- name: "obfuscating python code"
  command: "source /opt/company_name/{{ app_name }}/current/bin/activate && pyarmor obfuscate --src='.' -r __init__.py && cp -fr dist/* . && rm -rf dist"
  chdir: /opt/intuitive/{{ app_name }}/current/lib/python3.6/site-packages/{{ app_module }}/
代码语言:javascript
复制
TASK [python-app : obfuscating python code] ************************************
fatal: [server]: FAILED! => {"changed": false, "cmd": "source /opt/company/app-name/current/bin/activate '&&' pyarmor obfuscate --src=. -r __init__.py '&&' cp -fr 'dist/*' . '&&' rm -rf dist", "msg": "[Errno 2] No such file or directory: 'source': 'source'", "rc": 2}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-14 23:31:25

您正在尝试在command模块中使用shell特性。command不使用shell,因此将整个命令行作为参数传递给cd。当您使用管道、文件全局化等外壳特性时,您应该使用shell模块。

您还可以使用模块的内置支持来设置工作目录,以使命令更短一些。

代码语言:javascript
复制
- name: Obfuscate python code
  shell: 
    cmd: pyarmor obfuscate --src='.' -r __init__.py && cp -r dist/* . && rm -rf dist
    chdir: /opt/company_name/{{ app_name }}/current/lib/python3.6/site-packages/{{ app_module }}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71878497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档