0% encontró este documento útil (0 votos)
424 vistas14 páginas

Introduccion A La Programacion en Scripts

Este documento presenta una introducción a la programación de scripts. Explica conceptos como funciones, variables, operadores de cadena y sustitución de comandos. Define funciones para organizar el código y muestra ejemplos del uso de variables, operadores matemáticos y cadenas. Además, describe la sustitución de comandos en Linux como una funcionalidad que permite ejecutar comandos y usar su salida como argumento de otros para ahorrar tiempo y esfuerzo.

Cargado por

suareztatiana757
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
424 vistas14 páginas

Introduccion A La Programacion en Scripts

Este documento presenta una introducción a la programación de scripts. Explica conceptos como funciones, variables, operadores de cadena y sustitución de comandos. Define funciones para organizar el código y muestra ejemplos del uso de variables, operadores matemáticos y cadenas. Además, describe la sustitución de comandos en Linux como una funcionalidad que permite ejecutar comandos y usar su salida como argumento de otros para ahorrar tiempo y esfuerzo.

Cargado por

suareztatiana757
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

UNIVERSIDAD NACIONAL DE INGENIERÍA - IES

FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN


INGENIERIA EN TELECOMUNICACIONES

Introducción a la programación de scripts

Autores:

1. 2017- 0880I - Einie Carolina Vega Palacios


2. 2017- 0833I - Karina Tatiana Suárez Arias
3. 2017- 0674I - Marcos Antonio Zelaya Martínez
4. 2017-0715I - Marlon Alexander Soto Morales

Tutor:
Msc. Ing. Juan Francisco Gómez Flores.

Managua, 16 de Mayo del 2019

TABLA DE CONTENIDO
Índice
Páginas

Objetivos
Introducción
Funciones y/o Procedimientos
Operadores en cadena
Sustitución de comandos
Los Ficheros de configuración en POWERSHELL
Conclusión
Bibliografía
Anexos

Introducción:
En la unidad anterior aprendimos sobre los diversos sistemas operativos que existen en el tema
siguiente estaremos aprendiendo como usar scripts los cuales facilitara la interaccion entre el
usuario y el sistema operativo.

La red está llena de terminología que para los que no son informáticos podría resultar algo
confusa. Algunos de estos términos pueden ser código fuente, guiones o script, snippets, etc. Bien,
en cuanto a código fuente, es todo aquel texto o información escrita usando algún lenguaje de
programación y respetando una determinada sintaxis para formar un algoritmo o función
específica que compondrá al programa.

Por tanto, código fuente es un término algo más genérico y amplio, pudiendo englobar también
dentro a los otros términos, ya que un snippet es un fragmento de código fuente que no llega a ser
demasiado complejo por lo general. Por ejemplo, cuando nos dedicamos al diseño web o
necesitamos insertar algún banner en nuestra web, normalmente los proveedores de anuncios
como Google Adsense o Amazon Afiliados nos dan un snippet con el código HTML para poderlo
insertar en nuestra web. Por tanto no es un programa completo, sino más bien pequeñas partes
de código reutilizables.

Si se están preguntando qué es un script o guión, debes saber que en programación se usa este
término para referise al código fuente escrito en algún tipo de lenguaje interpretado (casi
siempre). ¿Y qué diferencia existe con respeto a los lenguajes de programación compilados
tradicionales? Pues que a diferencia de éstos, el código fuente no se compila una sola vez y se
transforma en un binario, sino que se necesita de un intérprete que haga de intermediario y cada
vez que se quiere ejecutar el programa, el intérprete deberá traducir el código para que la
máquina lo entienda.

Funciones y procedimientos

Shell Script: Funciones/Procedimiento

Un ejemplo clásico, luego se explica el código línea por línea:


#!/bin/bash
#
# Esto es un ejemplo en Bash del clasico "Hola Mundo"
#

echo "Hola Mundo"

Como podeis ver, nada dificil para empezar. Empecemos a explicar un poco que significa cada
linea:

#!/bin/bash: Esta linea indica donde se encuentra el interprete de comandos en nuestro sistema.
Por defecto todos los sistemas que tengan Bash instalado, lo tendrán en el directorio /bin. Al
utilizar esta linea, podremos ejecutar el script como un programa normal, ya que el sistema sabra
que es un script en Bash y que tiene que hacer con él.

Si el script de ejemplo lo hubiésemos grabado como ejemplo.sh, lo podríamos ejecutar de la


siguiente manera:
[ralfm@desktop]# chmod ugo+x ejemplo.sh
[ralfm@desktop]# ./ejemplo.sh
Hola Mundo

# Esto es un ejemplo en Bash del clásico "Hola Mundo ": Esto es un comentario. Todas las
líneas que empiecen con el símbolo '#' serán tratadas como comentarios y no se ejecutaran.

echo "Hola Mundo": Esto es el comando que imprime la cadena de texto en pantalla.

Variables:

En todo script tendréis que trabajar con variables, más tarde o más temprano. Vamos a ver como
se definen y usan. Una buena costumbre cuando definamos variables en Bash es utilizar letras
mayúsculas, esto no es necesario, pero nos ayudara a tener un script más fácil de entender.

Definiendo una Variable

#!/bin/bash
#
# Esto es un ejemplo en Bash del clasico "Hola Mundo"
#

MENSAJE="Hola Mundo"
echo $MENSAJE

Hemos definido una variable llamada MENSAJE con el valor "Hola Mundo", y la hemos usado con
el comando echo para escribir el valor de la misma. Las variables en Bash se definen como
NOMBRE=valor (sin espacios antes o después del símbolo '=') y su valor se usa, poniendo el
símbolo '$' delante del nombre de la variable, $NOMBRE.

Si al utilizar el valor de una variable, el nombre de variable esta seguido de un carácter que sea
otra letra, numero o el símbolo '_', tendremos que utilizar los símbolos '{}' alrededor del nombre
de la variable

#!/bin/bash

FICHERO="registro"
echo ${FICHERO}_2006.txt

Variables de Entorno:

#!/bin/bash
echo "El usuario '$USERNAME' ha ejecutado el script $0, en el ordenador '$HOSTNAME'. "
También se pueden usar en nuestro scripts, variables que no hemos definido nosotros. Estas
variables son las llamadas 'variables de entorno' del sistema. En nuestro ejemplo hemos utilizado
$USERNAME y $HOSTNAME para obtener el nombre de usuario y del ordenador. La variable $0
contiene el nombre del script, más adelante explicaremos esto.

Asignado resultados de comandos a variables:

#!/bin/bash

ATRIBUTOS_SCRIPT=`/bin/ls -l $0`

echo "El usuario '$USERNAME' ha ejecutado el script $0, en el ordenador '$HOSTNAME'. "
echo "Los atributos del script son: "
echo $ATRIBUTOS_SCRIPT

También podemos asignar la salida que producen los comandos del sistema a una variable. En
nuestro ejemplo hemos asignado la salida del comando 'ls -l a una variable llamada
ATRIBUTOS_SCRIPT. Esto nos será muy útil en nuestros scripts para obtener información del
sistema que podremos utilizar en nuestros scripts.

Usando Caracteres Especiales en Variables:

Existen una serie de caracteres que tienen un significado especial en Bash, por ejemplo $ y ". Si
queremos usar literalmente estos caracteres en el valor de una variable tendremos que usar el
simbolo '\' delante de ellos.

#!/bin/bash

MENSAJE="\"Hola Mundo ...\""


echo "El valor de la variable \$MENSAJE es $MENSAJE"

Variables Numéricas:

Si queremos definir variables numéricas para su utilización en scripts Bash podemos utilizar el
comando let. Nada mejor que un ejemplo para ver cómo se trabaja con variables numéricas.

#!/bin/bash

let A=100
let B=200
let C=$A+$B

echo "A: $A | B: $B | C: $C"

Funciones:

En Bash se pueden definir funciones. Una función en Bash (denominada subrutina o


procedimiento en otros lenguajes de programación) se podría definir como un script dentro de un
script. Sirve para organizar un script en unidades lógicas de manera que sea más fácil mantenerlo y
programarlo. En Bash las funciones se pueden definir de la siguiente manera:

function nombre_de_funcion(){
comandos_del_shell
}

Un ejemplo de función en un script:

#!/bin/bash

let A=100
let B=200

#
# Funcion suma()
# Suma los variables A y B
#
function suma(){
let C=$A+$B
echo "Suma: $C"
}

#
# Funcion resta()
# Resta los variables A y B
#
function resta(){
let C=$A-$B
echo "Resta: $C"
}

suma
resta

operadores de cadena

Operadores de cadena

Hay dos operadores de cadena. Uno utiliza los valores cadena de los operandos y devuelve una
cadena como resultado. El otro compara los operandos y devuelve un valor booleano que indica la
correspondencia.

& Concatenación de cadenas. La operación devuelve una cadena de texto, que consiste en los dos
operandos, uno tras otro.
  Example:  

'abc' & 'xyz' devuelve 'abcxyz'

lik Comparación de cadenas con caracteres comodín. La operación devuelve un valor booleano True (-1) si
e la cadena anterior al operador coincide con la cadena posterior al operador. La segunda cadena puede
contener los caracteres comodín * (cualquier número de caracteres arbitrarios) o ? (un carácter
arbitrario).

  Example:  

'abc' like 'a*' devuelve True (-1)

'abcd' like 'a?c*' devuelve True (-1)

'abc' like 'a??bc' devuelve False (0)

Operadores de cadena

Una expresión que utiliza un operador de cadenas devuelve una cadena. La siguiente tabla
muestra los operadores de cadena:

Operadores de Cadena

= Iguales 
!= Diferentes 
-n Con longitud mayor que 0 
-z Longitud igual a 0 o vacío 
Formas de utilizar el operador de cadena y los comodines

El operador de cadena (&) puede utilizarse en fórmulas y los comodines (*, ? , ~) pueden
utilizarse en condiciones.

Concatenar cadenas o el contenido de celdas

A continuación se muestran algunos ejemplos del uso del operador de concatenación:

Es la operación por la cual dos caracteres se unen para formar una cadena de caracteres (o string).
También se pueden concatenar dos cadenas de caracteres o un carácter con una cadena para
formar una cadena de mayor tamaño. Algunos ejemplos:

 'a' concatenado 'b' → "ab"

 "ABCD" concatenado 'b' → "ABCDb"

 'a' concatenado "XYZ" → "aXYZ"

 "ABCD" concatenado "XYZ" → "ABCDXYZ"

Sustitución de Comandos en Linux


Una de las grandes ventajas de los sistemas UNIX y GNU/Linux es la flexibilidad que brindan a través de su
mecanismo IPC (Inter-Process Communication). Dos casos particulares donde brilla este mecanismo son la
sustitución de comandos y la sustitución de procesos, funcionalidades implementadas a nivel de shell que
permiten ahorrar tiempo y esfuerzo en tareas complejas.

Estas sustituciones están disponibles en varios shells, pero nos enfocaremos en su sintaxis y
funcionamiento en bash.

SUSTITUCIÓN DE COMANDOS

La sustitución de comandos consiste en ejecutar uno o varios comandos y escribir su salida de forma que
sea tomada como argumento por otro comando. Esta sustitución es diferente del encadenamiento de
comandos que se hace con el símbolo | (pipe), pues no arroja un flujo que es leído a través de standard
input sino que escribe la información textualmente en la línea de comandos. La sustitución de comandos
en bash hace uso del operador $() (en otros shells normalmente se usan las comillas invertidas o
backticks ``).

La sustitución de comandos se basa en recuperar la salida de un comando en la línea de comandos. Las


salidas de comandos pueden utilizarse para la asignación de una variable o como argumento de otro
comando.
La sustitución de comandos o expansión de comandos, permite que la salida de un comando sustituya al
propio comando. El formato utilizado es:

$(comando)

El shell efectúa las sustituciones de comandos antes de interpretar la línea de comandos en su totalidad.

La sintaxis clásica de una sustitución de comandos utiliza el apóstrofe invertido (o acento abierto, o "back
quote") obtenido con la tecla [`]+[espacio] en un teclado español:

[javier]$ whoami 
javier 
[javier]$ echo "mi login es ’whoami’" 
mi login es javier 
[javier]$ milogin=’whoami’ 
[javier]$ echo "mi login es $milogin" 
mi login es javier

La ventaja de asignar la salida de un comando a una variable radica en poder reutilizar varias veces el
resultado evaluando una sola vez el comando.

La segunda sintaxis admitida para la sustitución de comandos es $(). La ventaja de esta sintaxis reside en
poder anidar las sustituciones de comandos:

[javier]$ echo ’contenido de mi directorio: $(ls /home/$(whoami))’ 


contenido de mi directorio: blanco 
azul 
amarillo 
marrón 
rojo 
verde 
violeta

La sustitución de comandos puede ser anidada.

$ fecha=$(date)
$ echo $fecha
lun sep 5 12:27:33 CEST 2013
Ejemplo: Crear una variable de entorno que contenga el resultado de un comando ejecutable.

MYDIR=`dirname /usr/local/share/doc/foo/foo.txt`

Lo que hicimos arriba se llama sustitución de comando ("command substitution").


En la primera línea, simplemente encuadramos el comando que queríamos ejecutar entre esas comillas
especiales.

Se puede hacer así también:


MYDIR=$(dirname /usr/local/share/doc/foo/foo.txt)

Ejemplo: se quiere editar un archivo fuente C utlizando vi. El archivo se llama myprog.c, pero no
recordamos en qué subdirectorio bajo nuestro home está almacenado. Para lograr esto normalmente
haríamos algo así:

find ~ -name myprog.c

/home/carlos/cprogs/tests/myprog.c

vi /home/carlos/cprogs/tests/myprog.c

La forma de hacerlo es correcta, pero implica tres pasos: encontrar el archivo, tomar nota de la ruta y pasar
esta ruta como argumento a vi.

Con sustitución de comandos la tarea se puede lograr en un solo paso:

vi $(find ~ -name myprog.c)

Mediante el operador $() indicamos a bash que ejecute el comando entre paréntesis y pegue la salida justo
delante de vi. La salida en este caso es la ruta del archivo encontrado por find, por lo que la expresión
resultante será vi /home/carlos/cprogs/tests/myprog.c. En caso que hubiera varios archivos con el mismo
nombre en distintos directorios, vi abrirá todos ellos; por ejemplo, si el archivo  myprog.c existe tanto
en ~/cprogs/tests/ como en ~/cprogs/drafts, tendríamos la expresión resultante vi
/home/carlos/cprogs/tests/myprog.c /home/carlos/cprogs/drafts/myprog.c.

Ficheros de configuración en POWERSHELL

Como configurar ficheros de PowerShell en linux

Microsoft lleva dos años a favor tanto del código abierto como de las aplicaciones
multiplataforma. Cada poco tiempo podemos ver cómo la compañía libera el código de distintas
herramientas o servicios, así como la creación de nuevos proyectos con el fin de llegar a un mayor
número de sistemas operativos. Siguiendo con esto, el pasado 10 de enero Microsoft lanzó una
nueva versión de su consola PowerShell Core, la 6.0, versión que, además de ser de código
abierto, ahora está preparada para funcionar en otros sistemas operativos, como macOS y Linux.

Igual que los sistemas Linux, así como macOS, tienen su propia termina desde la que poder
ejecutar todo tipo de comandos, imprescindible para la mayoría de las tareas de administración,
Microsoft también tiene una herramienta llamada PowerShell. A diferencia de CMD, la conocida
ventana de símbolo de sistema, PowerShell es una consola (CLI) mucho más completa, tanto en
funciones como en comandos, lo que la hace ideal especialmente para administradores de
sistemas.

A pesar de estas pérdidas, la llegada de PowerShell a otros sistemas operativos es una gran
noticia ya que, de esta manera, cualquier administrador va a poder utilizar la consola de
Microsoft tanto en sistemas Windows (desde 7 en adelante) como en macOS y una gran
variedad de distribuciones Linux, como Ubuntu, Redhat, Centos, Fedora, OpenSuse y Debian,
entre otras.

Cómo instalar PowerShell Core en Linux

De forma similar a cualquier otra aplicación, para instalar esta nueva consola de PowerShell en
Linux, lo que debemos hacer en primer lugar es importar las claves del repositorio y registrarlo
en nuestra distro. Después, actualizaremos las listas de paquetes para, finalmente, descargar
esta aplicación en nuestro sistema utilizando el conocido comando apt.

Los comandos que deberíamos ejecutar en la terminal de nuestro Ubuntu son

curl <a class="vglnk" href="https://packages.microsoft.com/keys/microsoft.asc"


rel="nofollow"><span>https</span><span>://</span><span>packages</span><span>.</span><span>micr
1
osoft</span><span>.</span><span>com</span><span>/</span><span>keys</span><span>/</span><span
>microsoft</span><span>.</span><span>asc</span></a> | sudo apt-key add -

curl <a class="vglnk" href="https://packages.microsoft.com/config/ubuntu/16.04/prod.list"


rel="nofollow"><span>https</span><span>://</span><span>packages</span><span>.</span><span>micr
3osoft</span><span>.</span><span>com</span><span>/</span><span>config</span><span>/</span><sp
an>ubuntu</span><span>/</span><span>16</span><span>.</span><span>04</span><span>/</span><sp
an>prod</span><span>.</span><span>list</span></a> | sudo tee /etc/apt/sources.list.d/microsoft.list

5 sudo apt update &amp;&amp;&nbsp;sudo apt install -y powershell

Una vez tengamos ya PowerShell instalado en nuestro Linux, solo nos queda ejecutar el
comando “pwsh” en una terminal cualquiera para arrancar esta consola y poder empezar a
utilizarla.
LISTA DE EQUIVALENTES EN POWERSHELL A COMANDOS LINUX
Con esta aclaración hecha podemos ponernos con las equivalencias:

# CD

Para cambiar de directorio en PowerShell tenemos Set-Location:

# LS

Para listar el contenido de un directorio en PowerShell podemos utilizar Get-ChildItem:

# PWD

Si queremos obtener nuestra ubicación actual disponemos de Get-Location:

# MAN
Si queremos consultar la ayuda en PowerShell podemos valernos de Get-Help:

# SCP

Si bien para SCP no existe una herramienta nativa en PowerShell que la reemplace podemos
tirar de WinSCP para PowerShell como vimos en entradas anteriores:

Si bien la lista puede seguir y seguir creo que esta es una buena representación de los
principales equivalentes en PowerShell a comandos en Linux para cualquier persona recién
aterrizada en PowerShell desde el sistema operativo del pingüino. Algo importante a tener en
cuenta es que en casi todos los casos existe un alias igual al comando de Linux al que ‘sustituye’,
por lo que la transición puede ser muy sencilla.

Bibliografia:

https://www.uv.es/jac/guia/vbscript/vb01.htm

https://baulderasec.wordpress.com/desde-la-consola/shell-en-unixlinux-sh-ksh-bash/4-bases-de-
la-programacion-shell/4-9-los-operadores-logicos-del-shell-y-codigos-de-terminacion/

https://www.lawebdelprogramador.com/foros/Linux-Unix-Shell-Scripting/1354692-Listado-de-
operadores-de-comparaciones-en-bash.html

http://fpg.site11.com/GNU-Linux/sustitucin_de_comandos.html

https://carloslindado.wordpress.com/2013/04/05/sustitucion-de-comandos-y-sustitucion-de-
procesos-en-bash/

https://www.redeszone.net/2018/01/20/instalar-powershell-linux/

https://thesolving.com/es/glosario/que-es-powershell/

También podría gustarte