Я пытаюсь запустить некоторые команды на удаленном сервере. Мне нужно найти там несколько файлов bash. К сожалению, кажется, что ткань (внезапно, недавно?) начала использовать /bin/sh
, и она ломается, потому что я использую синтаксис bash в своих сценариях. Я нашел это:
Если shell имеет значение True (по умолчанию), run выполнит заданную командную строку через интерпретатор оболочки, значение которого можно контролировать, установив env.shell (по умолчанию что-то похожее на /bin/bash -l -c "". ) Любые символы двойных кавычек (") или знака доллара ($) в команде будут автоматически экранированы, если оболочка имеет значение True.
Я не менял env.shell, поэтому не знаю, почему ткань начинает использовать sh
. В любом случае, я перезаписываю его, но все равно не повезло:
env.shell = "/bin/bash"
Что может быть причиной этого? Что я могу сделать, чтобы заставить ткань использовать bash
?
/bin/sh
указывает на него на удаленном сайте? - person hek2mgl   schedule 06.06.2013/bin/bash
действительно установлен./bin/sh
указывает наdash
(wtf!), но в любом случае я хочу использовать/bin/bash
, а не/bin/sh
, поэтому не имеет значения, на что указывает/bin/sh
. - person blueFast   schedule 06.06.2013root
илиnobody
илиcgi
или подобное вместо себя? Или, в качестве альтернативы, вы пытаетесь что-тоsudo
(у ткани есть код, который специально пытается эмулировать удаление env для sudo)? - person abarnert   schedule 06.06.2013_shell_wrap
), вы можете точно видеть, что он делает, и я не понимаю, как он мог поместить туда что-либо, кромеenv.shell
. - person abarnert   schedule 06.06.2013bash
какsh
. Некоторые *BSD-системы вместо этого использовалиash
, потому что он намного меньше, не меняется так часто и был более тщательно очищен от проблем с безопасностью (хотя этого недостаточно для OpenBSD). В какой-то момент по тем же причинам Debian (и, следовательно, Ubuntu) переключился сbash
на ответвлениеash
, которое было названоdash
(угадайте, что означаетd
). - person abarnert   schedule 06.06.2013bash
(сshell=False
). - person abarnert   schedule 06.06.2013