Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: elFO в Dec 15, 2012, 05:21



Титла: BASH команди в Perl скриптове. Възможно ли е и ако да как?
Публикувано от: elFO в Dec 15, 2012, 05:21
Стана ми интересно да си играя с прости .pl скриптове и ми дойде на ум нещо да пробвам (ето го и въпроса). Възможно ли е в perl скриптове да използвам BASH команди. Ако е възможно, какво трябва да променя в програмата за да заработи. Примерно искам да ми излезе командата time от bash (или някоя друга ама съвсем проста). Възможно ли е да я набутам и да я изпълня в един .pl скрипт или тя работи само в .sh скриптове. Вече правих с .pl скриптове опити, но неуспешни, затова и питам да не направя някоя глупост с някоя друга по-сложна команда от терминала, дето изглежда проста.

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


Титла: Re: BASH команди в Perl скриптове. Възможно ли е и ако да как?
Публикувано от: dejuren в Dec 15, 2012, 06:07
http://www.perlhowto.com/executing_external_commands

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


Титла: Re: BASH команди в Perl скриптове. Възможно ли е и ако да как?
Публикувано от: ivanatora в Dec 15, 2012, 16:15
Пример:

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

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


Титла: Re: BASH команди в Perl скриптове. Възможно ли е и ако да как?
Публикувано от: elFO в Dec 19, 2012, 00:14
http://www.perlhowto.com/executing_external_commands

OMG, колко много начини! :o ::) [_]3


Титла: Re: BASH команди в Perl скриптове. Възможно ли е и ако да как?
Публикувано от: chen_dzen в Dec 19, 2012, 19:34
още един наячин на това което искаш  :
Код
GeSHi (Perl):
  1. #!/usr/bin/perl
  2.  
  3. foreach(@ARGV) {
  4.  
  5. system($_);
  6.  
  7. }

обаче подаваш аргумента като низ, ето така : perl file.pl "ls -a -X -l"