Le script bash utilise la commande cut à la variable et le résultat du stockage à une autre variable
J'ai un config.txt fichier avec les adresses IP comme contenu, comme ce
10.10.10.1:80
10.10.10.13:8080
10.10.10.11:443
10.10.10.12:80
Je veux ping chaque ip adresse dans le fichier
#!/bin/bash
file=config.txt
for line in `cat $file`
do
##this line is not correct, should strip :port and store to ip var
ip=$line|cut -d\: -f1
ping $ip
done
Je suis un débutant, désolé pour cette question mais je ne pouvais pas le trouver moi-même.
source d'informationauteur CodingYourLife | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Le awk solution est ce que je voudrais utiliser, mais si vous voulez comprendre vos problèmes avec bash, voici une version révisée de votre script.
Vous pouvez écrire votre ligne du haut comme
Vous besoin d'une substitution de commande
$( ... )
pour obtenir la valeur assignée à $ipla lecture des lignes à partir d'un fichier est généralement considéré comme plus efficace avec le
while read line ... done < ${file}
modèle.J'espère que cette aide.
Vous pouvez éviter la boucle et de couper etc en utilisant:
Toutefois, il serait mieux si vous postez un extrait de votre config.txt