Что такое формат файла SH?
.sh - это распространенное расширение файлов оболочки Unix, используемое bash (Bourne-again shell) и другими POSIX-совместимыми оболочками. Файлы .sh хранят скрипты командной оболочки - последовательности команд и инструкций, написанных на языке оболочки и сохраненных в виде простого текста.
Файлы .sh создаются в любом текстовом редакторе и в основном используются для скриптов, выполняемых через командную строку Unix. Файл .sh обычно начинается со строки shebang - например, #!/bin/sh или #!/bin/bash, - которая указывает операционной системе, какой интерпретатор следует вызвать. Чтобы запустить скрипт напрямую, файл должен быть помечен как исполняемый с помощью команды chmod +x filename.sh.
Bash - это интерпретируемый командный язык и свободная оболочка Unix, распространяемая по лицензии GNU, которая используется по умолчанию во многих системах Linux и macOS. Большинство систем семейства Unix поддерживают эту оболочку. Bash заменил оригинальную оболочку Bourne, отсюда и название - Bourne-again (вновь рожденный).
Файлы .sh также могут использоваться для сохранения скриптов, предназначенных для других оболочек, таких как Korn Shell, Z Shell, C Shell или Bourne Shell. В Windows аналогичная автоматизация выполняется с помощью пакетных файлов или скриптов PowerShell. Поскольку расширение .sh традиционно сигнализирует о совместимости с оболочкой POSIX, скрипты, ориентированные на конкретную оболочку, явно объявляют свой интерпретатор в строке shebang.
Безопасность и защита
РИСК: MEDIUMФайл .sh - это эквивалент запуска произвольных команд в Unix: при выполнении он может делать все, что разрешено пользователю - удалять файлы, устанавливать ПО, похищать данные или запускать вредоносные программы. Известный паттерн «curl URL | bash» запускает удаленный скрипт без возможности его проверки. Правила безопасности: (1) НИКОГДА не запускайте .sh из ненадежного источника, не прочитав его сначала - это обычный текст, поэтому откройте его в редакторе и проверьте, что он делает; (2) опасайтесь обфусцированных однострочников, блоков base64 или скриптов, передающих данные в sudo; (3) самораспаковывающиеся скрипты-инсталляторы (shar/Makeself, включая .run) скрывают полезную нагрузку после текста скрипта - запускайте их только от официальных поставщиков. Файл .sh не является опасным сам по себе, но это код, поэтому доверяйте источнику.
Детали формата
в двух словахПрограммы, открывающие файлы SH
Технические подробности
глубокая спецификация| Тип файла | Текстовый исполняемый скрипт командной оболочки |
| MIME-тип | application/x-sh |
| Соглашение Shebang | Первая строка объявляет интерпретатор: #!/bin/sh, #!/bin/bash или #!/usr/bin/env bash |
| Кодировка символов | UTF-8 или ASCII; кодировка должна поддерживаться целевой оболочкой |
| Окончания строк | Требуется LF (стиль Unix); окончания строк CRLF вызывают синтаксические ошибки в большинстве оболочек |
| Метод выполнения | Вызов через bash script.sh или установка бита исполнения (chmod +x) и запуск напрямую как ./script.sh |
| Синтаксис комментариев | Символ #; все от # до конца строки игнорируется интерпретатором |
| Назначение переменных | Объявление типа не требуется; VAR=value (без пробелов вокруг =); доступ через $VAR или ${VAR} |
| Соглашение о кодах выхода | 0 = успех; любое ненулевое значение = ошибка; возвращается через exit N или проверяется в $? |
| Портативность POSIX | Скрипты, написанные по стандарту POSIX sh, работают в bash, dash, ksh и любой соответствующей оболочке |
| Флаги обработки ошибок | set -e завершает работу при первой ошибке; set -u считает неустановленные переменные ошибкой; set -o pipefail фиксирует сбои в конвейерах |
| Поддержка платформ | Нативно в Linux и macOS; доступно в Windows через WSL, Git Bash или Cygwin |
| Основной интерпретатор | Bash (GNU Bourne-Again Shell); также dash, ksh или zsh в зависимости от строки shebang |
| Отладка скриптов | set -x включает режим трассировки, выводя каждую команду перед выполнением; bash -n проверяет синтаксис без запуска |
| Выпущен | 1979 (Bourne shell, Unix V7); POSIX shell standardized; Bash 1989 |
| Открыть стандартное | Да · без роялти |
| Спецификация | pubs.opengroup.org |
Конвертации SH
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах SH.