首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >schroot:传递要执行的命令,就像它在shell中一样

schroot:传递要执行的命令,就像它在shell中一样
EN

Stack Overflow用户
提问于 2010-06-19 13:49:42
回答 3查看 4.4K关注 0票数 1

我想做一些类似的事情:

代码语言:javascript
复制
schroot -c name -u root "export A=3 && export B=4"

但是我得到了一个错误:

代码语言:javascript
复制
Failed to execute “export”: No such file or directory

换句话说,我希望能够在schroot环境中以编程方式执行外壳命令。获得这种行为的正确方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-19 14:08:30

我建议:

代码语言:javascript
复制
schroot -c name -u root sh -c "export A=3 && export B=4"

或者更好:

代码语言:javascript
复制
schroot -c name -u root -- sh -c "export A=3 && export B=4"

这将运行带有'-c‘选项的shell,告诉它( shell)将以下参数读取为要执行的命令(脚本)。同样的技术也适用于其他类似的命令:'su','nohup',...

--选项终止schroot的参数,并确保命令行其余部分上的任何选项都传递给shell并由shell解释,而不是schroot。这是由SR_comment中建议的,schroot的手册页也建议使用它(搜索“Separator”)。默认情况下,GNU getopt()函数会对参数进行置换,这里不需要这样做。--会阻止它对--之后的参数进行置换。

票数 5
EN

Stack Overflow用户

发布于 2010-06-19 14:06:06

代码语言:javascript
复制
schroot -c name -u root -- export A=3 && export B=4

确保/etc/schroot/schroot.conf

代码语言:javascript
复制
run-exec-scripts=true
run-setup-scripts=true
票数 4
EN

Stack Overflow用户

发布于 2010-06-19 13:57:14

你可以试一试

代码语言:javascript
复制
schroot -c name -u root "/bin/bash -c 'export A=3; export B=4'"

但这是我第一次听说施罗特。而且导出看起来像是直接从命令行运行带双引号的东西的useless...even,似乎子shell不想影响父shell的环境。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3074512

复制
相关文章

相似问题

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