Используйте bash вместо sh в качестве предпочтительной оболочки для функций пространства имен команд python - PullRequest
2 голосов
/ 18 февраля 2011

Мне нужно использовать командную строку, подходящую для стиля bash, например,

diff x  <(cat y | tail +2)

Однако sh -c в приведенной выше строке выдает ошибку, следовательно, command.getoutput из указанной выше строки завершается неудачей.Однако bash -c из вышеперечисленного делает то, что я хочу сделать.Может кто-нибудь предложить, как заставить Python использовать Bash.Я понимаю, что могу сделать это с помощью подпроцесса, но у меня много командных строк, которые мне нужно обработать, и я хочу использовать только команды .getoutput.

Спасибо.

1 Ответ

3 голосов
/ 18 февраля 2011

Вы можете сделать commands.getoutput("bash -c 'diff x <(tail +2 y)'"), возможно (обратите внимание, что cat не требуется).

Однако: commands.getoutput('tail +2 y | diff x -') не требует Bash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...