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 .