Logo

Unix

Actualizado 0B13

Gestor de terminal kitty con varias ventanas/Unix
0B13

¿Por qué línea de comandos? CLI.

SCRIPTS

Usando #!/bin/bash (tambien se llama "shebang")

Lenguaje que no necesita compilación para ejectuarse.
"bash" es el lenguaje del terminal
compilación: traducción de un programa al lenguaje que una computadora pueda entender.

Sin compilación, el programa le dice a la computadora paso a paso lo que tiene que hacer.

Un ejempo de script para actualizar web:

#!/bin/bash

Estamos indicando que se ejecuta el programa en bash

# === CONFIGURACIÓN ===

Las lineas que empiezan con # no se ejecutan, se usa para dejar comentarios. Pero, cuando lanzas un ./script.sh el sistema operativo lee solo la primera línea, y ahí le estamos diciendo con #! que hay que ejecutar lo que viene después.

ARCHIVO_LOCAL="/Users/nombre_de_usuario/carpeta/archivo.html"
URL_WEBDAV="https://elinternete.org/webdav/site/archivo.html"

indicamos de dónde cogemos el archivo y ruta de entrega

USUARIO="nombre_de_usuario"
CONTRASENA="la_contraseña"

# === VALIDACIÓN ===

if [ ! -f "$ARCHIVO_LOCAL" ]; then
echo "❌ El archivo '$ARCHIVO_LOCAL' no existe."
exit 1
fi

esta parte significa "Si el archivo NO existe"
`-f`comprueba si es un archivo
`!` singnifica "NO"
y detiene el script con `exit 1` para intentar subir algo que no existe`
`if`significa "si" y se usa para evaluar una condición.
`fi`significa "fin del if" e indica donde termina el bloque condicional.
`then`significa "entonces" e indica qué comandos se ejecutan si la condición de `if`es verdadera.
echo muestra el texto o variables en la pantalla

# === SUBIDA ===

echo "📤 Subiendo '$ARCHIVO_LOCAL' a '$URL_WEBDAV'..."
curl -T "$ARCHIVO_LOCAL" "$URL_WEBDAV" --user "$USUARIO:$CONTRASENA"
if [ $? -eq 0 ]; then
echo "✅ Archivo subido correctamente (sustituyendo si ya existía)."
else
echo "❌ Error al subir el archivo."
exit 1
fi

`curl`es un programa para enviar/recibir datos por internet
`-T` significa trasferir un archivo. Si el archivo ya existía, lo remplaza.
`--user` evnía usuario y contraseña.

`$?`es una variable del shell (bash) que guarda el código de salida del último comando ejecutado.
`0`exito, fue bien.
`≠0`error, algo falló.
Esto informa al script de si todo fue bien o hubo algún tipo de error.
`else` indica que ocurrirá en caso de que `then´falle.

///


Lo que piensas me interesa pero no quiero administrar una sección de comentarios. Si quieres contactarme es fácil hacerlo a través de mastodon. Si lo prefieres mándame un correo a hola@jlogp