我正在运行以下grep命令
var=`grep -n "keyword" /var/www/test/testfile.txt`
这工作正如所料,但我需要从一个循环dynamic插入文件名如下所示:
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
你也可以使用:
var=$(grep -n "keyword" "/var/www/test/$(basename "${hd[$i]}").txt")
(注意引用,并且,如adaptr提到的,不要使用反引号,而是$(...) ,因为它是可嵌套的)。