首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >织物支持命令替换吗?

织物支持命令替换吗?
EN

Stack Overflow用户
提问于 2013-12-23 10:19:47
回答 1查看 172关注 0票数 0

我刚开始用蟒蛇做面料,边边很粗糙。我正在尝试编写一个用公共gpg键环的ID更新文件的小脚本。

在伪码中:

代码语言:javascript
复制
    sed("./conf", 'GPG_KEY='085C042B'', 'GPG_KEY='`commandoutput`', use_sudo=true,backup='')

其中commandoutput是以下命令的输出:

代码语言:javascript
复制
    bash$ gpg --list-keys | grep pub | grep 4096R | awk '{ print $2}' | cut -d'/' -f2

我正在寻找关于如何完成这一任务的建议。我可以通过管道或捕获fabric run命令的输出吗?

更新#1:宝马提供了以下有益的建议,但我不太确定如何集成到面料。我现在拥有的是:

代码语言:javascript
复制
DUPLY_DIR = "/etc/duply/fullbackup/"
    with cd(DUPLY_DIR):
        GPG_KEY1="085C042B"
        GPG_KEY2="$(gpg --list-keys | awk '/pub/&&/4096R/{split($2,a,"/"); print a[2]}')"
sed("./conf", 'GPG_KEY1', 'GPG_KEY2', use_sudo=true, backup='')

但这会产生一个错误:

代码语言:javascript
复制
File "/home/fabric/fabfile.py", line 44, in stage_gpg
    GPG_KEY2="$(gpg --list-keys | awk '/pub/&&/4096R/{split($2,a,"/"); print a[2]}')" TypeError: unsupported operand type(s) for /: 'str' and 'str'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-25 05:21:00

首先,gpg命令可以替换为

代码语言:javascript
复制
gpg --list-keys |awk '/pub/&&/4096R/{split($2,a,"/");print a[2]}' 

将所有*.conf文件上的GPG键"085C042B“替换为gpg ouptut。

代码语言:javascript
复制
GPG_KEY1="085C042B"
GPG_KEY2=$(gpg --list-keys |awk '/pub/&&/4096R/{split($2,a,"/");print a[2]}' )
sed -i "s/$GPG_KEY1/$GPG_KEY2/" *.conf
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20741417

复制
相关文章

相似问题

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