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