2013-01-15 3 views
1

Я хотел бы перезаписать функцию system(). Это возможно?Как перезаписать системную функцию

+1

Почему ты сделал это? Чего вы хотите достичь? – 23tux

+0

Вы можете «обезвредить» его, просто определив его, как объясняет комментатор 23tux. Но вы [действительно не хотите перезаписывать систему(). На самом деле нет] (http://stackoverflow.com/a/4471202/73673). – berkes

+0

Это плохая вещь. Что вы спрашиваете, можете ли вы показать, что вы, вероятно, не знаете, почему вы этого не должны. –

ответ

3

Конечно, вы можете переписать почти все в Ruby (полезно ли или нет):

system "ls /" # returns "/etc /var...", normal behaviour 

def system args 
    puts args 
end 

system "ls /" # returns "ls /" 
+0

Где я могу поместить этот код? – KKK

+0

Я не знаю ваш проект, но если вы хотите использовать его global: прежде чем вы вызываете систему в первый раз;) В инициализаторе, например, или в вашем скриптовом файле – 23tux

-1

Если это не имеет значения, чтобы использовать system на всех, то вы можете использовать кавычку. Выходы выполняют команду и возвращают вывод в виде строки.

Вы можете присвоить значение переменной следующим образом:

output = `ls` 
p output 
Смежные вопросы