Похоже, что любой запрашиваемый сервер настроен на возврат окончаний строк в стиле Windows (\r\n
) вместо «обычного» стиля *nix \n
. К сожалению, в отличие от \n
, \r
не удаляются из вывода команды при назначении переменной.
Для иллюстрации:
$ var=$(printf 'hello\n')
$ printf '%s' "$var" | od -c
0000000 h e l l o
0000005
$ var=$(printf 'hello\r\n')
$ printf '%s' "$var" | od -c
0000000 h e l l o \r
0000006
Как видите, \n
автоматически удаляется, а \r
— нет. Итак, если вы не можете изменить конфигурацию сервера, вам просто нужно удалить \r
самостоятельно:
job_url=$(curl ... | grep Location | grep -o -E '[^ ]+$' | tr -d '\r')
Python не нужен, и легко доказать :, что базовая установка Debian может получить доступ к сети и т. д., но не имеет Python.
Python такой же интерпретатор, как и любой другой. Это может потребоваться в некоторых дистрибутивах, если их основные инструменты (, менеджеры пакетов и т. д. )написаны на Python; требуются другие интерпретаторы, и никто не поднимает вокруг них шум (Perl, например, или оболочка в стиле POSIX -). Поскольку в настоящее время Python так широко используется, многие дистрибутивы устанавливают его по умолчанию в свои стандартные настройки, даже если он им абсолютно не требуется.
Что касается Android, вам потребуется Python для его сборки и запуска некоторых инструментов разработки (, начиная с Repo). Операционная система Android, работающая на целевых устройствах, не включает Python.
Python не является обязательным для Linux, и существует множество небольших «встроенных» Linux-систем, в которых его нет.
Однако многие дистрибутивы требуют этого. Таким образом, RHEL может иметь зависимость от Python, потому что некоторые из их инструментов управления и сценариев были написаны на нем. В этих системах Python является обязательным требованием.
Нет необходимости в том, что система не будет работать, если ее нет, но в некоторых дистрибутивах есть инструменты, написанные на Python.
Anaconda, программа установки для RHEL, CentOS, Fedora, Oracle Linux и Scientific Linux, написана на Python, как и yum
и dnf
, являющиеся менеджерами пакетов. Они также требуют, чтобы Python функционировал, поэтому, если с ним что-то не так, они не будут работать.
portage
, менеджер пакетов для Gentoo, также написан на Python.