Автор Тема: BASH команди в Perl скриптове. Възможно ли е и ако да как?  (Прочетена 1607 пъти)

elFO

  • Напреднали
  • *****
  • Публикации: 22
  • Distribution: Fedora 18
  • Window Manager: GNOME
  • Много питам!
    • Профил
Стана ми интересно да си играя с прости .pl скриптове и ми дойде на ум нещо да пробвам (ето го и въпроса). Възможно ли е в perl скриптове да използвам BASH команди. Ако е възможно, какво трябва да променя в програмата за да заработи. Примерно искам да ми излезе командата time от bash (или някоя друга ама съвсем проста). Възможно ли е да я набутам и да я изпълня в един .pl скрипт или тя работи само в .sh скриптове. Вече правих с .pl скриптове опити, но неуспешни, затова и питам да не направя някоя глупост с някоя друга по-сложна команда от терминала, дето изглежда проста.

Интересно ми е дали докато се мъча да науча Perl, мога да си разнообразя скриптовете с Bash команди от терминала (и така някак успоредно да си ги уча) и ако да какво точно трябва да променя? Ако може, до къде трябва да съм стигнал с езика Perl.
На практика съм стигнал до масиви и захванах някои неща от тях.
Активен

А ти къщичка за пиленца правил ли си?!

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
http://www.perlhowto.com/executing_external_commands

Обикновено ползвам exec(), но предимството в пърл е, че има неизброимо количество модули, които могат да свършат същата работа вместо системната команда. Например наскоро намерих два различни начина за установяване на ssh връзка с два различни модула, което подсказва, че може би двата не са единствени.
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Пример:

Код
GeSHi ():
  1.  
  2. $t = `whoami`;
  3. chomp($t);
  4. print "I am: " .$t;
  5.  

По този начин обаче имай предвид че накрая на стринга ще имаш един нов ред (\n в линукс), за това може да го минеш през chomp()
Активен

elFO

  • Напреднали
  • *****
  • Публикации: 22
  • Distribution: Fedora 18
  • Window Manager: GNOME
  • Много питам!
    • Профил
Активен

А ти къщичка за пиленца правил ли си?!

chen_dzen

  • Напреднали
  • *****
  • Публикации: 623
  • Distribution: Debian 6.0 Squeeze
  • Window Manager: GNOME
    • Профил
още един наячин на това което искаш  :
Код
GeSHi (Perl):
  1. #!/usr/bin/perl
  2.  
  3. foreach(@ARGV) {
  4.  
  5. system($_);
  6.  
  7. }

обаче подаваш аргумента като низ, ето така : perl file.pl "ls -a -X -l"
« Последна редакция: Dec 19, 2012, 19:39 от chen_dzen »
Активен


Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Perl
Общ форум
x11r6 5 3584 Последна публикация Aug 09, 2003, 10:03
от x11r6
Perl
Общ форум
Йордан 3 3028 Последна публикация Nov 13, 2003, 16:14
от Йордан
Gtk-Perl
Хардуерни и софтуерни проблеми
apogza 0 1940 Последна публикация Jan 24, 2004, 12:52
от apogza
Ползва ли се Perl в България и за какво?
Общ форум
berov 63 19295 Последна публикация Jan 31, 2005, 11:17
от toxigen
Четене от Серийни портове с Perl
Общ форум
berov 2 2762 Последна публикация Jun 15, 2004, 18:17
от berov