В вашем случае вы хотите передать небольшое целое число в вызывающую программу. По сути, у вас есть три возможности, каждая из которых имеет недостатки или преимущества.
- Используйте код выхода
При условии, что целое число всегда неотрицательно и меньше 256, вы можете передать он возвращается через Python exit
и забирает его на стороне вызывающего абонента, используя переменную $?
, которая содержит код выхода последней выполненной программы.
python3 your_program.py
count=$?
Хотя этот метод прост , Я не рекомендую его по двум причинам:
- Коды выхода предназначены для сообщения об ошибках, а не обычных данных.
- Если вы однажды захотите запустить свой скрипт с
set -e
(terminate-on-error), у вас будут проблемы.
Используйте стандартный вывод
Напишите целое число, которое вы хотите вернуть в стандартный вывод, и заберите его с помощью подстановки команды, например,
count=$(python3 your_program.py)
Недостаток: если вы однажды захотите добавьте дополнительный вывод в вашу программу (скажем, для диагностики), вам придется записать его в stderr, иначе он испортит ваш результирующий счетчик.
Используйте файл
Пусть ваша программа Python принимает имя файла и позволяет ей записывать счетчик в этот файл:
python3 your_program.py count_file
count=$(<countfile)
Недостаток: вы должны заботиться о создаваемых count_files, например, удалять их, если они больше не нужны.