[英]Bash variable substitution in Prodigy
我想通过命令db-out导出Prodigy标记会话的结果。 Prodigy 安装在Google Compute Engine VM 中,但我不是它的所有者,因此,我正在尝试的内容如下所示:
# Assume `test1` exists
DB_NAME="test1"
# `super_user` is Prodigy owner's home directory.
sudo runuser -l super_user -c 'python3 -m prodigy db-out "$DB_NAME" > ./"$DB_NAME".jsonl'
前面的命令应该生成一个test1.jsonl
文件,该文件应该在super_user
主目录中找到; 但是,不会生成test1.jsonl
。 顺便说一句,运行这些行时,不会显示警告或错误。
不过,当我直接运行以下命令时:
sudo runuser -l super_user -c 'python3 -m prodigy db-out test1 > ./test1.jsonl'
test1.jsonl
文件按照预期和前面的解释正确生成。 为什么?
附加说明/更新:
在解决了我对这篇文章的关注(这是由Gordon Davidson提出的,强烈建议对其进行修订),我设法解决了我原来的问题。 更正后的代码如下所示:
DB_NAME="test1"
sudo runuser -l super_user -c "python3 -m prodigy db-out $DB_NAME > ./$DB_NAME.jsonl"
只是为了明确更改,它们是:
之后,脚本按预期工作。 如果我正确理解这篇文章,可能还有其他一些有效的答案; 但是这个现在有效。
谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.