2013-02-25 11 views
0

Я хотел бы написать простой CSH скрипт, который перебирает все компьютеры в сети и выполняет команду, которая вводится в командной строкеЧтение пользовательского ввода (который должен быть командой Linux) и выполнить

echo -n "Please enter command you would like executed on all computers > \n " set command = "$<"

сказать, что пользователь вводит ls | grep что-то. Как я могу выполнить эту команду в следующей строке? Я попробовал $command, который отлично работает для ввода, например echo "Hello World". Я получаю следующую ошибку для ls | Grep-то

ls: |: No such file or directory ls: grep: No such file or directory ls: something: No such file or directory

В идеале я хотел бы ввести несколько команд в командной строке перед циклом через каждый компьютер в сети (я уже могу сделать) и выполнить. Например, сказать, что я хочу, чтобы скопировать два файла

sudo cp ./bin/elastix /usr/bin; sudo cp ./lib/transformix /usr/lib

Благодарности

ответ

1

петли через все компьютеры в сети и выполняет команду, которая вводится в командной строке

Вы возможно, используя ssh, чтобы вы сделали что-то вроде:

ssh $hostname "$command" 

Я не пользователь csh, поэтому у меня может быть неправильный синтаксис. Для текущего компьютера вы можете использовать команду оболочки eval, которая должна интерпретировать любые последовательности команд, а не только простые команды.

+0

Спасибо. Казалось, что проблема заключается в выполнении команды на текущем компьютере. Я уже намеревался использовать 'ssh $ hostname '$ command" ' – moadeep

Смежные вопросы