Como os argumentos citados são manipulados por / bin / time

1

Estou cronometrando um binário personalizado no formulário: ./prog --opt1=arg1 --opt2=arg2 --opt3="arg3"

É necessário que a terceira opção tenha um argumento citado. Em um script, salvo todas as opções:

exec=./prog e opts="--opt1=arg1 --opt2=arg2 --opt3=\"arg3\""

Quando tento cronometrar o programa, estou recebendo um erro com meu programa analisando os argumentos. Eu estou supondo que é porque está vendo o último arg como não citado. A saída de /bin/time :

\bin\time -v $exec $opts

Error parsing args (do meu programa)
Command being timed: "./prog --opt1=arg1 --opt2=arg2 --opt3="arg3""

No entanto, quando apenas copio e colo, o que afirma é o comando, é executado corretamente:

./prog --opt1=arg1 --opt2=arg2 --opt3="arg3" - executa muito bem

O que o /bin/time está fazendo e como posso corrigir isso? Eu estou supondo que tem a ver com as citações, como talvez seja executado eval ou algo assim. Não tenho certeza do que fazer sobre isso.

    
por Mike Lui 10.03.2016 / 02:52

1 resposta

0

Eu consertei isso definindo o comando inteiro para uma variável e, em seguida, avaliando isso:

$ full_cmd="/bin/time -v $exec $opts" e $ eval $full_cmd

    
por 10.03.2016 / 03:04

Tags