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
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
Bash
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 |