Saltar a contenido

Apuntes de Scripting: PowerShell vs Bash

1. Ejecución de scripts

PowerShell

.\script.ps1
Set-ExecutionPolicy RemoteSigned

Bash

./script.sh
chmod +x script.sh

2. Definición de variables

PowerShell

$nombre = "Juan"
$numero = 5

Bash

nombre="Juan"
numero=5

3. Estructuras de control

Condicional IF (PowerShell)

if ($numero -gt 10) {
    Write-Output "Mayor que 10"
} elseif ($numero -eq 10) {
    Write-Output "Es 10"
} else {
    Write-Output "Menor que 10"
}

Condicional IF (Bash)

if [ $numero -gt 10 ]; then
    echo "Mayor que 10"
elif [ $numero -eq 10 ]; then
    echo "Es 10"
else
    echo "Menor que 10"
fi

Bucle FOR (PowerShell)

for ($i = 0; $i -lt 5; $i++) {
    Write-Output "Iteración $i"
}

Bucle FOR (Bash)

for i in {0..4}; do
    echo "Iteración $i"
done

4. Funciones

PowerShell

function Saludo {
    param($nombre)
    Write-Output "Hola, $nombre"
}
Saludo "Ana"

Bash

saludo() {
    nombre=$1
    echo "Hola, $nombre"
}
saludo "Ana"

5. Lectura de entrada

PowerShell

$input = Read-Host "Ingresa tu nombre"

Bash

read -p "Ingresa tu nombre: " input

6. Parámetros de script

PowerShell

param(
    [string]$nombre,
    [int]$edad
)
Write-Output "Nombre: $nombre, Edad: $edad"

Bash

nombre=$1
edad=$2
echo "Nombre: $nombre, Edad: $edad"

7. Gestión de errores

PowerShell

try {
    Get-Item archivo.txt
} catch {
    Write-Output "Error: $_"
}

Bash

if ! cat archivo.txt; then
    echo "Error leyendo el archivo"
fi

8. Salida a archivo

PowerShell

"Texto de salida" | Out-File salida.txt

Bash

echo "Texto de salida" > salida.txt

9. Invocación de comandos del sistema

PowerShell

Get-Process

Bash

ps aux

10. Diferencias clave

Concepto PowerShell Bash
Sintaxis Basada en objetos Basada en texto
Tipado Fuerte (tipos explícitos) Débil (todo es string)
Salida por defecto Objetos Texto plano
Acceso a propiedades $obj.Propiedad awk, cut, etc.

Comandos de Linux más comunes en scripting

Comando Explicación Ejemplo
echo Muestra texto en la salida estándar echo 'Hola Mundo'
read Lee una entrada del usuario read nombre
if Estructura condicional if [ $x -gt 5 ]; then echo 'Mayor'; fi
for Bucle for para iterar for i in {1..5}; do echo $i; done
while Bucle while while [ $x -lt 10 ]; do echo $x; x=$((x+1)); done
case Selección múltiple case $var in 1) echo 'Uno';; *) echo 'Otro';; esac
function Define una función mi_funcion()
chmod Cambia permisos de archivo chmod +x script.sh
cat Muestra el contenido de un archivo cat archivo.txt
grep Busca texto en archivos grep 'error' archivo.log
awk Procesa y extrae columnas de texto awk '{print $1}' archivo.txt
cut Extrae secciones de cada línea cut -d',' -f1 archivo.csv
exit Finaliza el script con un código exit 0