Comment append une variable dans une command grep

Je gère la command grep suivante

var=`grep -n "keyword" /var/www/test/testfile.txt` 

Ce travail est comme prévu, mais j'ai besoin d'insert le nom du file de manière dynamic comme suit:

 var=`grep -n "keyword" /var/www/test/`basename ${hd[$i]}`.txt` 

Mais évidemment, l'utilisation de `freine ceci avec un EOF inattendu tout en recherchant la correspondance` `'et la fin de file inattendue

Des idées divergentes autour de cela?

2 Solutions collect form web for “Comment append une variable dans une command grep”

N'utilisez pas `, et utilisez une fonction :

 mygrep() { grep -n "yourkeyword" "/var/www/test/${1##*/}.txt"; } for (( i= 0; i < ${#hd[@]}; i++ )); do yourvar=$(mygrep "${hd[$i]}"); done 

Vous pouvez aussi utiliser:

 var=$(grep -n "keyword" "/var/www/test/$(basename "${hd[$i]}").txt") 

(observez les quotings, et, comme adapté mentionné, n'utilisez pas de backticks, mais $(...) place, car il est nestable).

  • Script Shell: searchz les inputs dans le journal d'access avec une réponse 500 dans une période de date spécifiée
  • Puis-je get un tableau comme argument d'option dans le script bash
  • Comment démarrer Rails à partir d'un script shell sur Debian?
  • Faites en sorte que la search réussisse même s'il n'y a pas de files correspondants
  • Comment tuer une boucle désavouée?
  • Recargage automatisé et gracieux du gunicorn en production
  • Redirection globale du port 80 à 443
  • Elinks | vidage après formulaire
  • Obtenir un ctime, atime, mtime et des attributes étendus d'un file
  • Comment afficher deux boîtes de dialog sur la console linux, en cours d'exécution en même time?
  • Connectez-vous à MySQL avec une command line sans besoin d'un mot de passe racine
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.