one <<(two)
выполняет команду two
и передает его вывод по каналу в one
. Более распространенный способ записать это two | one
, таким образом, Ваша команда может также быть записана:
curl -s https://rvm.beginrescueend.com/install/rvm | bash
Та связь разорвана теперь, но веб-сайт говорит для использования этого вместо этого:
curl -L get.rvm.io | bash -s stable
curl
выводы, что это загружает, таким образом, это загружает файл в get.rvm.io
и передает его содержание по каналу для избиения. Если Вы просто работаете curl
управляйте отдельно, что Вы видите, что это - a bash
сценарий, который загружает и устанавливает rvm
Использовать system LIST
, который не вызывает оболочку. т.е.
system('/bin/bash', '-c', $your_command);
вместо
system("/bin/bash -c '$your_command'");
Так как Вы находитесь в Perl, Вы не ограничены одинарными и двойными кавычками:
system q{bash -c 'echo "Hello World"'};
system('source', '/bin/zsh', '-c', $full_cmd')
работа? – Amelio Vazquez-Reina 24.05.2013, 23:08Can't exec '/bin/bash': Not a directory
когда я пробуюsystem('/bin/bash', '-c', 'echo Hello world');
даже при том, что это, конечно, там. – Amelio Vazquez-Reina 25.05.2013, 01:36system("/bin/bash -c 'echo Hello world'");
работа? – cjm 25.05.2013, 02:11