该parset
实用程序允许将命令的输出存储在变量或任何数组中。但是我想将输出存储在特定的数组索引中。
$ parset arr echo foo {} ::: a b c
$ echo ${arr[0]}
foo a
$ echo ${arr[1]}
foo b
$ echo ${arr[2]}
foo c
我如何在命令中指定数组索引。假设我想将值存储在${arr[4]}
, ${arr[5]}
,${arr[6]}
答案1
升级到 20171122 或执行以下操作。
更改很简单:只需禁用对有效变量名称的检查(在 中env_parallel.bash
):
# echo "$_parset_name" |
# perl -ne 'chomp;for (split /[, ]/) {
# if(not /^[a-zA-Z_][a-zA-Z_0-9]*$/) {
# print STDERR "parset: Error: $_ is an invalid variable name.\n";
# print STDERR "parset: Error: Variable names must be letter follow\
ed by letters or digits.\n";
# $exitval = 255;
# }
# }
# exit $exitval;
# ' || return 255
并做:
. env_parallel.bash
parset 'arr[4],arr[5],arr[6]' echo foo {} ::: a b c
echo ${arr[6]}