Poner parametros en shell

Iniciado por mester, 2 Febrero 2015, 23:10 PM

0 Miembros y 1 Visitante están viendo este tema.

mester

Hola.

Tengo un problema y es que he hecho un programa para que escanee un rango de ips por conexiones ssh. Lo que quiero hacer es que poner en el terminal el programa y los parametros (usuario, contraseña, ip...) pero no se como hacerlo. Por ejemplo me gustaria para poner el usuario escribir -u (usuario) pero no sé como hacer eso. Si me podeis ayudar
Justicia es dar a cada uno lo que se merece

T. Collins


mester

Justicia es dar a cada uno lo que se merece

T. Collins

Los parametros que le pasas puedes utilizarlos con $1, $2, $3...

mester

Cita de: T. Collins en  2 Febrero 2015, 23:30 PM
Los parametros que le pasas puedes utilizarlos con $1, $2, $3...
Sabia que me dirían eso, pero el problema es que los quiero pasar como en el ejemplo -u (usuario), etc...
¿Hay alguna manera en Shell?
Justicia es dar a cada uno lo que se merece

T. Collins


Eleкtro

#6
Cita de: garriga975 en  2 Febrero 2015, 23:32 PMSabia que me dirían eso, pero el problema es que los quiero pasar como en el ejemplo -u (usuario), etc...
¿Hay alguna manera en Shell?

Pues utiliza un argumento para verifcar el nombre parámetro, y el siguiente argumento para asignar el valor del parámetro.

No majoe Bash, pero creo que se entiende lo que intento decir, te muestro un pseudo código:

args=[$1, $2]
user=""

If args(1) == "-u" Then
 If Not IsEmptyString(args(2)) Then
    user = args(2)
 End If
End If


Aunque sinceramente, serías mucho más productivo si utilizases la siguiente sintaxis:

-u:valor
o
-u=valor

Ya que de este modo evitaras checkeos innecesarios (aparte de los del ejemplo de arriba).

Pseudo-code de ejemplo:
args=[$1, $2]
user=""

If args(1).StartsWith("-u=") Then
  user = args(1).Substring("-u=".Length)
Then








mester

Cita de: Eleкtro en  2 Febrero 2015, 23:39 PM
Pues utiliza un argumento para verifcar el nombre parámetro, y el siguiente argumento para asignar el valor del parámetro.

No majoe Bash, pero creo que se entiende lo que intento decir, te muestro un pseudo código:

args=[$1, $2]
user=""

If args(1) == "-u" Then
 If Not IsEmptyString(args(2)) Then
    user = args(2)
 End If
End If


Aunque sinceramente, serías mucho más productivo si utilizases la siguiente sintaxis:

-u:valor
o
-u=valor

Ya que de este modo evitaras checkeos innecesarios (aparte de los del ejemplo de arriba).

Pseudo-code de ejemplo:
args=[$1, $2]
user=""

If args(1).StartsWith("-u=") Then
  user = args(1).Substring("-u=".Length)
Then


No, no sirve el codigo ese. Debe de haber alguna manera de declarar variables tipo $var==-n pero no se como se hace, ni si hay. En codigos como C, si que he visto que ponen argc== y el valor y tal, pero en shell...
Justicia es dar a cada uno lo que se merece

Eleкtro

#8
Cita de: garriga975 en  2 Febrero 2015, 23:58 PMDebe de haber alguna manera de declarar variables tipo $var==-n pero no se como se hace, ni si hay.

Aquí parecen mostrar como puedes declarar variables de solo lectura, integer, string, y arrays:
9.2. Typing variables: declare or typeset