我想做一些类似的事情:
schroot -c name -u root "export A=3 && export B=4"但是我得到了一个错误:
Failed to execute “export”: No such file or directory换句话说,我希望能够在schroot环境中以编程方式执行外壳命令。获得这种行为的正确方法是什么?
发布于 2010-06-19 14:08:30
我建议:
schroot -c name -u root sh -c "export A=3 && export B=4"或者更好:
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()函数会对参数进行置换,这里不需要这样做。--会阻止它对--之后的参数进行置换。
发布于 2010-06-19 14:06:06
schroot -c name -u root -- export A=3 && export B=4确保/etc/schroot/schroot.conf
run-exec-scripts=true
run-setup-scripts=true发布于 2010-06-19 13:57:14
你可以试一试
schroot -c name -u root "/bin/bash -c 'export A=3; export B=4'"但这是我第一次听说施罗特。而且导出看起来像是直接从命令行运行带双引号的东西的useless...even,似乎子shell不想影响父shell的环境。
https://stackoverflow.com/questions/3074512
复制相似问题