Пожалуйста, не используйте`, а используйте функцию :
mygrep() { grep -n "yourkeyword" "/var/www/test/${1##*/}.txt"; }
for (( i= 0; i < ${#hd[@]}; i++ )); do yourvar=$(mygrep "${hd[$i]}"); done
Вы также можете использовать:
var=$(grep -n "keyword" "/var/www/test/$(basename "${hd[$i]}").txt")
(обратите внимание на цитаты и, как упоминалось в адаптере, не используйте обратные кавычки, а вместо них $ (...)
, поскольку это гнездо).