¿Qué es el formato de archivo SH?
.sh es una extensión de archivo de shell común en Unix, utilizada por bash (Bourne-again shell) y otros shells compatibles con POSIX. Los archivos .sh almacenan scripts de shell: secuencias de comandos e instrucciones escritas en lenguaje de shell, guardadas como texto plano.
Los archivos .sh se crean en cualquier editor de texto y se utilizan principalmente para scripts ejecutados por una línea de comandos de shell de Unix. Un archivo .sh suele comenzar con una línea shebang -como #!/bin/sh o #!/bin/bash- que indica al sistema operativo qué intérprete invocar. Para ejecutar un script directamente, el archivo debe hacerse ejecutable con chmod +x filename.sh.
Bash es un lenguaje de comandos interpretado y un shell de Unix gratuito distribuido bajo la licencia GNU, utilizado por defecto en muchos sistemas Linux y macOS. La mayoría de los sistemas de la familia Unix admiten este shell. Bash reemplazó al Bourne shell original, de ahí el nombre: Bourne-again.
Los archivos .sh también pueden utilizarse para guardar scripts destinados a otros shells, como Korn Shell, Z Shell, C Shell o Bourne Shell. En Windows, la automatización equivalente se gestiona mediante archivos por lotes o scripts de PowerShell. Debido a que .sh señala convencionalmente la compatibilidad con el shell POSIX, los scripts dirigidos a un shell específico declaran su intérprete explícitamente en la línea shebang.
Seguridad y protección
RIESGO: MEDIUMUn archivo .sh es el equivalente en Unix a ejecutar comandos arbitrarios: al ejecutarse puede hacer cualquier cosa que el usuario pueda -borrar archivos, instalar software, exfiltrar datos o ejecutar malware-. El notorio patrón «curl URL | bash» ejecuta un script remoto sin posibilidad de inspeccionarlo. Reglas de seguridad: (1) NUNCA ejecute un .sh de una fuente no confiable sin leerlo primero -es texto plano, así que ábralo en un editor y verifique qué hace-; (2) desconfíe de las líneas únicas ofuscadas, bloques base64 o scripts que usen tuberías hacia sudo; (3) los scripts de instalación autoextraíbles (shar/Makeself, incluyendo .run) ocultan una carga útil después del script -ejecútelos solo si provienen del proveedor oficial-. Un .sh no es automáticamente peligroso, pero es código, así que confíe en la fuente.
Detalles del formato
en pocas palabrasProgramas que abren archivos SH
Detalles técnicos
especificación profunda| Tipo de archivo | Script de shell ejecutable en texto plano |
| Tipo MIME | application/x-sh |
| Convención Shebang | La primera línea declara el intérprete: #!/bin/sh, #!/bin/bash, o #!/usr/bin/env bash |
| Codificación de caracteres | UTF-8 o ASCII; la codificación debe ser compatible con el shell de destino |
| Finales de línea | Se requiere LF (estilo Unix); los finales de línea CRLF causan errores de sintaxis en la mayoría de los shells |
| Método de ejecución | Invocar con bash script.sh, o establecer el bit ejecutable (chmod +x) y ejecutar directamente como ./script.sh |
| Sintaxis de comentarios | Carácter #; el intérprete ignora todo desde el # hasta el final de la línea |
| Asignación de variables | No requiere declaración de tipo; VAR=valor (sin espacios alrededor del =); se accede como $VAR o ${VAR} |
| Convención de código de salida | 0 = éxito; cualquier valor distinto de cero = error; se devuelve mediante exit N o se inspecciona en $? |
| Portabilidad POSIX | Los scripts escritos según el estándar POSIX sh se ejecutan en bash, dash, ksh y cualquier shell conforme |
| Banderas de manejo de errores | set -e sale al primer error; set -u trata las variables no establecidas como errores; set -o pipefail captura fallos en tuberías |
| Soporte de plataforma | Nativo en Linux y macOS; disponible en Windows a través de WSL, Git Bash o Cygwin |
| Intérprete principal | Bash (GNU Bourne-Again Shell); también dash, ksh o zsh dependiendo de la línea shebang |
| Depuración de scripts | set -x activa el modo de traza, imprimiendo cada comando antes de su ejecución; bash -n verifica la sintaxis sin ejecutar |
| Lanzado | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Estándar abierto | Sí · libre de regalías |
| Especificación | pubs.opengroup.org |
Conversiones de SH
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos SH.