1 votes

cat le contenu d'un fichier dans un fichier temporaire mais le fichier/dossier n'existe pas

Bonne journée à tous

Cela fait partie d'une fonction plus large, mais je reçois cette erreur et je n'arrive pas à comprendre quel est le problème :

script nom "connecté.sh"

en cours d'exécution

 cat "$logfile" | grep "$searchstring"

renvoie des résultats parfaitement, cependant lorsque j'insère ceci dans la fonction bash, avec le code suivant : (c'est la ligne 41, la ligne 40 je crée le fichier tempout & 41 est un simple écho)

 "$(cat "$logfile" | grep "$searchstring")" >> "$tempout"

ceci est imprimé dans le terminal :

./connected.sh: line 41: Fri Nov  6 14:29:14 2015 us=68416 xyz/x.x.x.x.184:44595 MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12 
Fri Nov  6 14:29:27 2015 us=606987 xyz/x.x.x.x:40223 MULTI: primary virtual IP for xyz/1x.x.x.x:40223: 10.0.0.10 
Fri Nov  6 15:46:58 2015 us=712031 xyz/x.x.x.x4:54911 MULTI: primary virtual IP for xyz/x.x.x.x:54911: 10.0.0.12: No such file or directory

Quelle est la cause de ce "./connected.sh : line 41 : ... No such file or directory".

4voto

ineptprogrammer Points 56
 "$(cat "$logfile" | grep "$searchstring")" >> "$tempout

est d'exécuter la ligne trouvée par grep dans votre $logfile (c'est ce que fait le "$" au début de votre parenthèse extérieure) et de stocker la sortie dans $tempout. D'après votre explication, il semble que vous essayez de rediriger la ligne trouvée par grep dans $tempout, ce qui serait juste :

cat "$logfile" | grep "$searchstring" >> "$tempout"

C'est ce que tu essaies de faire ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X