Foro de elhacker.net

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
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
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
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?

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:

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:

Código:
-u:valor
o
Código:
-u=valor

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

Pseudo-code de ejemplo:
Código:
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
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:

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:

Código:
-u:valor
o
Código:
-u=valor

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

Pseudo-code de ejemplo:
Código:
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
Debe 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)