Aquí os muestro un sencillo ejemplo de cómo hacer el paso por referencia en C++:
Si el otro día hablábamos de la facilidad de usar índices negativos en arrays a través PHP, hoy traemos otra receta para cocinar el paso por valor y el paso por referencia, algo que en algunos lenguajes, como C, es de vital importancia, y que en el caso de PHP nos puede servir de gran ayuda.
Para ilustrar claramente la diferencia entre paso por valor y paso por referencia en una función en PHP, vamos a usar un pequeño script. Prestemos especial atención a las llamadas sumarPorValor() y sumarPorReferencia(), que de entrada vemos como la definición de ambas es similar.
<?php // Declaramos las funciones function sumarPorValor($suma, $a, $b) { $suma = $a + $b }
Aquí os dejo mi cheat sheet, o pequeño manual de referencia, personal sobre Bash. Faltan cosas pero creo que he cubierto lo más básico. Espero que os guste. 😉
Para escribir en Bash puedes hacerlo directamente desde la consola/terminal de GNU/Linux, sin embargo, su mayor potencia radica en poder escribir ‘scripts’ y ejecutar piezas de código para automatizar tareas. Aquí muestro paso a paso un ejemplo.
Abre tu editor de textos favoritos y escribe el siguiente código.
#!/bin/bash echo "Hola mundo"
Guárdalo como holamundo.sh (la extensión no importa pero ésta es renococida por muchos editores de texto) .
Para lanzar el ‘script’ Bash, dále permisos de ejecución. Para ello escribe en tu terminal/consola de comandos:
chmod u+x holamundo.sh
Recuerda ejecutar este comando y los siguientes en la misma carpeta/directorio donde se encuentra holamundo.sh
Lanza el ‘script’ ejecutando en tu terminal/consola:
./holamundo.sh
Si no ha habido ningún problema se ejecutará el ‘script’ de Bash mostrando la frase “Hola mundo”.
Aquí se mostrarán las características de dicho intérprete de comandos o shell de GNU. Recuerda que los comandos son las acciones a ejecutar desde la consola/terminal Linux. En la siguiente sección hay una recopilación de ellos.
Los comentarios en Bash se hacen línea a línea con el símbolo #.
#!/bin/bash # # Hola Mundo comentado # echo "Hola mundo"
Las variables no tienen tipo, es decir, una variable puede contener una cadena, un número, etc. sin necesidad de definirlo.
La sintaxis es:
nombre_variable=valor_variable
Es obligatorio no dejar espacios antes o despues del simbolo ‘=’ ya que sino Bash interpretaría la variable como un comando Linux.
Para acceder a una variable simplemente escribe como prefijo $ en el nombre de la variable.
echo $varname
Un ejemplo sencillo:
#!/bin/bash # Asignación y salida de variables mivariable="Me llamo Nacho" echo $mivariable
Cuando ejecutas desde tu terminal/consola tienes la posibilidad de pasarle más argumentos. Por ejemplo:
./miScript.sh hola 4
Para recoger estos valores escribe $ y a continuación el número de posición del argumento pasado. El primer argumento tiene valor $1, que sería ‘hola’, y el segundo argumento sería $2, en el ejemplo sería el número 4. La variable $0 es el propio nombre del archivo.
#!/bin/bash # # Paso de variables # echo "Tu primer argumento es" $1 echo "Tu segundo argumento es" $2
También hay que destacar que $? guarda el valor de salida del último comando ejecutado. $* almacena todos los argumentos y $# es el número de argumentos pasados.
Los condicionales y bucles se rigen mediante la evaluación de una expresión. Por eso lo primero es saber cómo programar en Bash las evaluaciones de una expresión.
La evaluación de una expresión da como resultado verdadero o falso. Si la comparación o evaluación de la expresión es verdadera se ejecutará el bucle o la condicional, si es falsa la evaluación no se ejecutará.
En Bash, la sintaxis es la siguiente:
test expresión
ó
[ expresión ]
Un ejemplo de expresión sería [ 3 -eq 5 ] que comprueba si el valor 3 es igual a 5. Como es incorrecto, el valor que devuelve es falso. Los símbolos [ y ] tienen que estar obligatoriamente separados por un espacio.
numero1 -eq numero2: Devuelve verdadero si 'numero1' es igual a 'numero2'. numero1 -ge numero2: Devuelve verdadero si 'numero1' es igual o mayor a 'numero2'. numero1 -gt numero2: Devuelve verdadero si 'numero1' es mayor a 'numero2'. numero1 -le numero2: Devuelve verdadero si 'numero1' es igual o menor a 'numero2'. numero1 -lt numero2: Devuelve verdadero si 'numero1' es menor a 'numero2'. numero1 -ne numero2: Devuelve verdadero si 'numero1' no es igual a 'numero2'.