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
En que lenguaje?
Los parametros que le pasas puedes utilizarlos con $1, $2, $3...
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?
$1 = -u y $2 = usuario
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
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...
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)