Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: mester en 2 Febrero 2015, 23:10 PM

Título: Poner parametros en shell
Publicado por: mester en 2 Febrero 2015, 23:10 PM
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
Título: Re: Poner parametros en shell
Publicado por: T. Collins en 2 Febrero 2015, 23:18 PM
En que lenguaje?
Título: Re: Poner parametros en shell
Publicado por: mester en 2 Febrero 2015, 23:23 PM
Cita de: T. Collins en  2 Febrero 2015, 23:18 PM
En que lenguaje?
En shell script (linux)
Título: Re: Poner parametros en shell
Publicado por: T. Collins en 2 Febrero 2015, 23:30 PM
Los parametros que le pasas puedes utilizarlos con $1, $2, $3...
Título: Re: Poner parametros en shell
Publicado por: mester en 2 Febrero 2015, 23:32 PM
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?
Título: Re: Poner parametros en shell
Publicado por: T. Collins en 2 Febrero 2015, 23:36 PM
$1 = -u  y $2 = usuario
Título: Re: Poner parametros en shell
Publicado por: Eleкtro en 2 Febrero 2015, 23:39 PM
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
Título: Re: Poner parametros en shell
Publicado por: mester en 2 Febrero 2015, 23:58 PM
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...
Título: Re: Poner parametros en shell
Publicado por: Eleкtro en 3 Febrero 2015, 00:19 AM
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 (http://tldp.org/LDP/abs/html/declareref.html)