Сценарий Bash - это текстовый файл, содержащий команды, написанные на командном языке Bash.
Пример Bash скрипта
Например, приведенный ниже сценарий будет приветствовать имя, которое мы указываем в качестве параметра:
1 2 | #!/bin/bash echo Hello, $1! |
Вы можете выполнить сценарий оболочки следующим образом:
Вы можете проверить сценарий оболочки следующим образом:
1 | file test.sh |
Одним из недостатков использования такого скрипта является то, что код хорошо виден, и он может быть не таким производительным, как запуск скомпилированной программы.
Шаги по компиляции сценария Bash в двоичный файл
shc - это компилятор сценариев Bash. С его помощью вы можете скрыть исходный код (как некоторые сказали бы "зашифровать") сценария Bash и устранить зависимость от интерпретатора Bash, скомпилировав ваш сценарий Bash в исполняемый двоичный файл из командной строки.
Установите shc и необходимые библиотеки.
В Ubuntu или Debian
1 | sudo apt update && sudo apt install --assume-yes gcc shc |
В CentOS
1 2 3 4 5 6 | sudo dnf install gcc git make git clone https://github.com/neurobin/shc.git cd shc ./configure make sudo make install |
Для других дистрибутивов Linux.
Установите gcc и другие базовые средства разработки.
Загрузите с сайта https://github.com/neurobin/shc и обратитесь к нему.
Скомпилируйте сценарий с помощью shc
1 | shc -f test.sh |
Проверьте сгенерированные файлы
1 | ls -l |
- sh - исходный скрипт.
- sh.x - скомпилированный двоичный файл.
- .sh.x.c - исходный код на языке C, сгенерированный из файла .sh до компиляции в .sh.x.
Разрешение test.sh.x автоматически устанавливается как исполняемое
Проверьте тип файла (необязательно)
1 | file test.sh.x |
Переименуйте исполняемый файл (необязательно)
1 | mv test.sh.x hello |
Проверка выполнения файла (необязательно)
1 | ./hello "General Software" |