Programación

Comentarios en Bash

Posted on

Para hacer comentarios en bash se pueden ocupar varias formas:

  • Usando el símbolo de número: #

#!/bin/bash
# Una simple línea de texto
# Ismael - 19/10/2017

La primer línea se le llama “shebang” o “bang”, esta línea indica la ruta del interprete de comando para poder leer el script y lograr la ejecución (Le dice analiza el siguiente script que no tenga el símbolo de # usando interprete bash shell).

Las siguientes dos líneas indican comentarios del script, estos comentarios sirven para el correcto entendimiento de los Sys Admin o persona futura encargada del mantenimiento del código, támbien sirve para que el interprete ignore por completo las líneas.

  • Ignorando multiples líneas (here document)

En programación existe una técnica para la impresión o salida de cadenas llamado “here document” o “heredoc” y se trata de escribir una extensa cadena en un script, lo podemos usar en textos estaticos y no abusar de ellos. Este tipo de técnica lo podemos encontrar en diferente lenguajes de programación como Ruby, PHP, C, etc. Para usar here document en bash basta con generar un identificador o palabra para abrir y cerrar el segmento de las cadenas a comentar, se hace de la siguiente manera:

script en bash <<IDENTIFICADOR
escribiendo lo que se me antoje
hola
t
$varName
IDENTIFICADOR

 

Todo lo que siga después de  estos símbolos << lo que escriba será ignorado por completo.

 

 

Extraer caracteres en bash

Posted on Actualizado enn

Con la instrucción:

var=”Ismael Garcia”

echo ${var:0:6}

Esto imprimirá: Ismael, le estoy diciendo que a partir de la posición 0 haga el recorrido y tome en cuenta 6 posiciones o caracteres y que lo muestre.

A continuación coloco un script para ejemplificar la explicación dada anteriormente:

#! /bin/bash

dias=-7
startdays=0
finishdays=6
declare -a amonths
for((k=startdays; $k<=$finishdays; k++))
do
fecha=$(date +”%d%m%y” -d “$dias days”)
dias=$(($dias+1))
checkmonth=${fecha:2:2}
amonths[$k]=$checkmonth
done

 

Lo que hace este script es guardar en un array(amonths) los números de meses de 7 días hacia atrás a partir de la fecha actual, es decir, hoy es 27/04/2017 recorrerá a partir del 20/04/2017 hacia la fecha actual y guardara en el amonths={04 04 04 04 04 04 04}.

script en github

 

 

Solución a error de rutas no encontradas en Laravel 5.2

Posted on Actualizado enn

Cuando se navega sobre las distintas direcciones de un proyecto y no encuentra la ruta correspondiente enviando el siguiente error en el navegador, incluso en otros  navegadores simplemente no muestra nada, la siguiente imagen muestra como el navegador no puede encontrar la ruta de login: /blog/public/login

 

rutaswronglaravel

Para solucionar esto se modifica el archivo de configuración del servidor apache, se hace de la siguiente manera:

vim /etc/httpd/conf/httpd.conf

Modificar la siguiente línea de configuración: AllowOverride None 

Se reemplaza None por All

 

# Further relax access to the default document root:
<Directory “/var/www/html”>
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named *explicitly* — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#por default AllowOverride None, cambiar a AllowOverride All

AllowOverride All

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

 

Se reinicia el servidor apache:

service httpd restart

 

Nota: En la consola del servidor es necesario loguearse como super usuario(su) y usar un editor de texto(vim)