Выполнение многострочных команд с помощью Python

Вы можете использовать инструмент ip чтобы подделать ваш MAC-адрес. Вот пример для eth0 :

ip link set dev eth0 down
ip link set dev eth0 address 01:01:01:01:01:01
ip link set dev eth0 up

Источник: https://wiki.archlinux.org/index.php/MAC_address_spoofing

1
22.05.2019, 11:27
1 ответ

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

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

python - <<'EOF'
print("I'm running Python.")
print("Are you now?")
EOF

Кроме того, экранированные символы \nне распознаются оболочкой без команд, которые их используют, таких как printfили echo -e. Строка в ".."обрабатывается базовой оболочкой перед передачей ее исполняемому файлу. Поскольку для литерала \nне предусмотрена специальная обработка, оболочка не расширяет его до нескольких строк.

При использовании -cпо-прежнему следует неявно генерировать разрыв строки, нажимая клавишу Enter на терминале и продолжая вводить следующий набор команд

python -c "print(0)
> print(1)"

Еще один способ по-прежнему использовать python -cи сделать это — определить строку таким образом, чтобы встроенные символы новой строки анализировались внутри "..". Один из способов сделать это в bash/zsh— использовать ANSI -C Quoting и выполнить

python -c $'print(0)\nprint(1)'

т. е. внутри $'..'\nи несколько других escape-последовательностей расширяются оболочкой перед передачей ее через исполняемый файл.Теперь ваш pythonинтерпретатор видит две отдельные строки, переданные ему.

Также есть очень хорошо написанный перекрестный -дубликат сайта на StackOverflow -Выполнение многострочных операторов -в одной -строке команды -? объясняя это.

4
27.01.2020, 23:30

Теги

Похожие вопросы