pg_restore --create --exit-on-error --verbose --username=postgres -h localhost --dbname=my_db_name <backup_file>
То, что вы будете делать с циклами в других языках, выполняется с помощью рекурсивных вызовов функций в Erlang. Так что попробуйте что-то вроде этого:
run_forever() ->
Output = os:cmd("curl -v -k -X POST 'https://localhost:8243/raspberrypi/1.0.0/device/vf98e6a7atyp/bulb?state=on' -H 'accept: application/json' -H 'Authorization: Bearer 38180797-3181-3839-900d-bdaf259f056a'"),
io:format("Output from command:~n~s~n", [Output]),
%% Don't want to repeat too quickly! Sleep for five seconds
timer:sleep(5000),
run_forever().
Итак, эта функция что-то делает, а затем вызывает себя в конце. В некоторых других языках вы бы беспокоились о бесконечном росте стека вызовов, но в Erlang есть нечто, называемое «оптимизация хвостового вызова», что означает, что если последнее, что делает функция, это вызывает другую функцию (возможно, саму себя), то стек фрейм текущей функции просто заменяется на фрейм вызываемой функции, а размер стека остается неизменным.