GNU Parallel:不引用包含空格的Perl替换字符串值吗?

时间:2019-06-21 01:59:32

标签: bash perl gnu-parallel

我正在用#!/bin/bash seq ${2:-3} | parallel --tty -j0 sidplayfp -wch{}.wav '{=$_=join" ",map{"-u".$_}grep!/@{[seq()]}/,(1..total_jobs())=}' ${@:3} -q $1 '2>/dev/null' 编写的脚本如下所示:

./sidrender.sh Stomp.sid

例如,运行sidplayfp -wch1.wav -u2 -u3 -q Stomp.sid 2>/dev/null sidplayfp -wch2.wav -u1 -u3 -q Stomp.sid 2>/dev/null sidplayfp -wch3.wav -u1 -u2 -q Stomp.sid 2>/dev/null 可以执行以下命令:

--dry-run

但是,这不能正常工作,并且当与parallel一起查看时,事实证明-usidplayfp -wch1.wav '-u2 -u3' -q Stomp.sid 2>/dev/null标志(例如$ parallel --dry-run 'echo {= $_="foo bar" =}' ::: 1 echo 'foo bar' )引用在一起来自相同的Perl表达式。

这是正在发生的事情的最小示例:

"foo bar"

如果将"foo"替换为echo foo,则输出将为sidplayfp,不带引号。

由于parallel不能正确地引用引号,因此我需要一种方法来阻止{"active":true,"id":"xxxxxxxxxxxxxxxxx","settings":{"secret":"xxxxxxxxxxxxxxxxxxxxxxxxxx","token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expires":"2019-12-16 01:11:23"},"plan":"Sample"} 引用输出,但是我无法在手册页中找到方法。

1 个答案:

答案 0 :(得分:2)

使用snippet envvar library(bigrquery) con <- dbConnect( bigquery(), project = "${1:Project=`r eval({Sys.getenv('USER')})`}" )

eval