qsub -v varname=value
define varname
para o value
fornecido no ambiente do trabalho enviado.
No script enviado, você usa esse valor em um comando grep
, mas a string que contém a variável é citada com aspas simples, impedindo que o shell o expanda.
Seu script deve estar usando
grep "^$mold[[:blank:]]H" temp_4n.in | tail -1 > temp_5n.in
O $
inicial em seu código ( $'...'
) não é necessário aqui e, em vez disso, usamos [[:blank:]]
para corresponder a um espaço ou uma guia.
Uma alternativa seria usar awk
no seu script:
awk -v mold="$mold" '$1 == mold && $2 == "H" { this = $0 } END { print this }' temp_4n.in >temp_5n.in
Isso usa comparações de strings (não expressões regulares) para testar a primeira e a segunda coluna, e quando uma linha correspondente é encontrada, toda a linha é salva na variável this
. No final, o último valor de this
é impresso. Isso substitui os dois grep
e tail
.