LINUX.ORG.RU

Вопрос про создание простого скрипта .sh

 ,


0

1

Я хочу создать простой скрипт который будет выполнять все необходимые команды для компиляции и запуска кода( в данном случае на паскале ).И мне не очень понятно как взаимодействовать с информацией, которую компилятор дает например об удачном или неудачном завершении программы. Например я хочу написать конструкцию if которая при неудачной компиляции не будет переходить к запуску программы а выдаст на экран сообщение об ошибке.


А вообще, в 2k20 писать сборочную систему на баше - такое счёте решение. Рекомендую погуглить, даже для паскаля должен быть миллион готовых.

sislochka ()
fpc prog.pas && ./prog
anonymous ()

Вроде как ты какой Jenkins описываешь в хотелках.

ololoid ★★★★ ()
Ответ на: комментарий от sislochka

сборочную систему на баше - такое счёте решение

Поддерживаю, скрипты на баше вообще не надо писать, он только для интерактивной работы. Но автор про баш ничего не заявлял. А сборочная система #!/bin/sh -e - вполне норм.

firkax ★★★ ()

Например я хочу написать конструкцию if которая при неудачной компиляции не будет переходить к запуску программы а выдаст на экран сообщение об ошибке.

Первая строчка скрипта должна быть

#!/bin/sh -e

Тогда при неудачном завершении команды скрипт тоже завершится. А сообщение об ошибке на экран выдаст сам компилятор и так и так.

firkax ★★★ ()

Ты можешь отслеживать коды ошибок через переменные окружения, если их проставляет компилятор и сборочные сценарии и просто по наличию бинарного файла собранной программы.

anonymous ()
#!/bin/bash

## Copyright (C) 2022 Ivan Ivanov
##
## Author: Ivan Ivanov (zzz_) <zzz_@gmail.com>
## Date: 2022/02/05 11:06:16
## License: GPL either version 3 or any later version

cleanup () {
    echo "Caught $1 signal."
}

signals="HUP TERM QUIT KILL STOP EXIT"
for signal in $signals;do
    trap "cleanup ${signal}" "$signal"
done
trap 'cleanup INT; trap - INT; kill -INT $$' INT


main () {

    if [ -n "$1" ]; then
        echo "This script takes no arguments!"
        exit 1
    fi

    

}

main "$@"
Bad_ptr ★★★★ ()
Ответ на: комментарий от sislochka

сейчас писать что угодно на баше - хреновое решение

anonymous ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.