2017-09-07 1 views
-2

Fichier 1 -> hostname1Shell script pour extraire la ligne par ligne des données et fournir dans la variable à utiliser plus

hostname2

hostname3

hostname4

.

.

.

.

Je veux écrire un script bash pour extraire ces noms d'hôte et les enregistrer dans une variable.

Quelque chose comme ci-dessous, mais cela ne fonctionne pas

count=3 
i=1 
j=1 
count=`expr $count + 1` 
while [ $i -lt $count ] 
do 
     echo The counter is $i 

     $j=`sed -n "$i,$i p;$i q" file1.txt` 

    echo $i 
    i=`expr $i + 1` 
    j=`expr $j + 1` 
echo $j << this should return hostname1 then hostname2 
done 

Répondre

0

Essayez ceci:

i=1 

while read line ; 

do 

Var$i=$line 

i= ` expr $i + 1 ` 

done < inputFile 

Cela devrait créer var1, var2 ... et attribue chaque ligne à une variable

Else un tableau peut également être utilisé

i = 0 

while read line ; 

do 

arr[$i] = $line 

i = `expr $i + 1` 

done < inputFile 

La syntaxe de expr n'est pas ramasser le dos des tiques sur ma réponse, s'il vous plaît vérifier lorsque vous l'utilisez

+1

Je ne pense pas que cela fonctionne bien ... bash est très particulier sur les espaces autour du signe "=" – mlathe

0
i=1 
while read line ; 
do 
i=$line 
echo $i 
i=i+1 
done < file.txt 

code ci-dessus a résolu mon problème. Merci