Можно использовать язык программирования R.
Вот быстрый и грязный сценарий R:
#! /usr/bin/env Rscript
d<-scan("stdin", quiet=TRUE)
cat(min(d), max(d), median(d), mean(d), sep="\n")
Отметьте "stdin"
в scan
который является специальным именем файла для чтения из стандартного входа (который означает от каналов или перенаправлений).
Теперь можно перенаправить данные по stdin к сценарию R:
$ cat datafile
1
2
4
$ ./mmmm.r < datafile
1
4
2
2.333333
Также работы для плавающих точек:
$ cat datafile2
1.1
2.2
4.4
$ ./mmmm.r < datafile2
1.1
4.4
2.2
2.566667
Если Вы не хотите писать файл сценария R, можно вызвать истинную остроту (с разрывом строки только для удобочитаемости) в использовании командной строки Rscript
:
$ Rscript -e 'd<-scan("stdin", quiet=TRUE)' \
-e 'cat(min(d), max(d), median(d), mean(d), sep="\n")' < datafile
1
4
2
2.333333
Прочитайте прекрасные руководства R по http://cran.r-project.org/manuals.html.
К сожалению, полная ссылка только доступна в PDF. Другой способ считать ссылку путем ввода ?topicname
в подсказке интерактивной сессии R.
Для полноты: существует команда R, какие выводы все значения Вы хотите и т.д. К сожалению, в человеческом дружественном формате, который трудно проанализировать программно.
> summary(c(1,2,4))
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 1.500 2.000 2.333 3.000 4.000
Можно передать ssh
клиент команда для выполнения вместо запуска оболочки путем добавления его к команде ssh.
ssh username@domain.com 'rm /some/where/some_file.war'
Вы не имеете к cd
к местоположению для удаления чего-то, пока Вы указываете полный путь таким образом, это - другой шаг, можно пропустить.
Следующим вопросом является аутентификация. Если Вы просто выполните это, то Вам предложат пароль. Если Вы не хотите вводить это в интерактивном режиме, необходимо настроить аутентификацию с открытым ключом.
Команда ssh имеет параметр команды (последний параметр в команде), что можно использовать для выполнения удаленных команд.
Установите ключи без пароля, затем добавляют команду как часть команды ssh. См.: http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/
-f
кому:rm
выполнение удаленного вызова? – Fedir RYKHTIK 07.05.2014, 18:43rm
они должны, конечно, быть переданы вызывающей стороне, если пользователь не знает, что ожидать и почему они переопределяют что-то. Большого количества ошибок и разбивающий отлаживание позже можно избежать, только используя опции, в которых Вы нуждаетесь в данном сценарии. – Caleb 07.05.2014, 23:20-f
опция кrm
коротко для--force
и имеет эффект, являются ли ошибки thown для несуществующих файлов или поддельных аргументов. Обычно команды работают не на основе интерактивного значения по умолчанию оболочек к тому, чтобы быть менее интерактивным так или иначе, но оно Ваш не, или Вы добираетесь, интерактивная подсказка нужно должна была бы зафиксировать настройки, непосредственно связанные с этим. При сценариях этого, у Вас не должно быть той проблемы так или иначе, и если Вы находитесь в интерактивной оболочке (где у Вас есть возможность катастрофических опечаток), необходимо использовать-I
на--interactive=never
установить Ваше желаемое поведение. – Caleb 09.05.2014, 17:06