Linux/Unix Shell Scripting - Reduccion de lineas

   
Vista:

Reduccion de lineas

Publicado por Oscar M. (4 intervenciones) el 21/04/2016 22:42:10
Hola buen día amigos solicito de su valioso conocimiento.

Estoy creando un scrip con el fin de mandar ping a diferentes IP's pero se me hace algo básico mi scrip

quiero reducir código y que se vea mas profesional

Pensé en omitir de la columna 6 hasta 14 que es donde se manda el ping con un for o un case pero igual considero que es mucho código.

Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash
 
CR=$(cat /usr/local/bin/DBAIPRS.csv| grep -i ${1})
 
A=$(echo "$CR" | cut -d "," -f1) && echo $A
echo $?
 
B=$(echo "$CR" | cut -d "," -f2) && echo $B
echo $?
 
C=$(echo "$CR" | cut -d "," -f3) && echo $C
echo $?
 
D=$(echo "$CR" | cut -d "," -f4) && echo $D
echo $?
 
E=$(echo "$CR" | cut -d "," -f5) && echo $E
echo $?
 
F=$(echo "$CR" | cut -d "," -f6) && echo $F
ping -c1 $F 2> /dev/null
echo $?
 
G=$(echo "$CR" | cut -d "," -f7) && echo $G
ping -c1 $G 2> /dev/null
echo $?
 
H=$(echo "$CR" | cut -d "," -f8) && echo $H
ping -c1 $H 2> /dev/null
echo $?
 
I=$(echo "$CR" | cut -d "," -f9) && echo $I
ping -c1 $I 2> /dev/null
echo $?
 
J=$(echo "$CR" | cut -d "," -f10) && echo $J
ping -c1 $J 2> /dev/null
echo $?
 
K=$(echo "$CR" | cut -d "," -f11) && echo $K
ping -c1 $K 2> /dev/null
echo $?
 
L=$(echo "$CR" | cut -d "," -f12) && echo $L
ping -c1 $L 2> /dev/null
echo $?
 
M=$(echo "$CR" | cut -d "," -f13) && echo $M
ping -c1 $M 2> /dev/null
echo $?
 
N=$(echo "$CR" | cut -d "," -f14) && echo $N
ping -c1 $N 2> /dev/null
echo $?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reduccion de lineas

Publicado por caic (82 intervenciones) el 22/04/2016 10:04:18
Hola,

Con un par de bucles for te ahorras unas cuantas líneas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
 
CR=$(cat /usr/local/bin/DBAIPRS.csv| grep -i ${1})
 
for CONTADOR in in {1..6}
do
    A=$(echo "$CR" | cut -d "," -f$CONTADOR) && echo $A
    echo $?
done
 
for CONTADOR in in {7..14}
do
    F=$(echo "$CR" | cut -d "," -f$CONTADOR) && echo $F
    ping -c1 $F 2> /dev/null
    echo $?
done

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Reduccion de lineas

Publicado por Oscar (4 intervenciones) el 27/04/2016 04:15:28
Muchas gracias por tu tiempo me agrado la forma de organizar.

Saludos .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar