2015-03-02 4 views
1

Perl является отличным языком для хранения выходных данных команды к переменной Как я знаю, что Баш не поддерживают этуобъединить PERL команду внутри Баш скрипт

, например

my $value = qx(ls -ltr); 
print $value; 

будет печатать: (пример)

-r-xr-xr-x 1 root  root   761 May 30 2014 ASon.conf 
-r-xr-xr-x 1 root  root   699 May 30 2014 ascpl 
drwxr-xr-x 2 root  root   4096 Feb 24 13:22 da 
drwx------ 2 root  root   4096 Feb 25 08:08 vm-root 
drwxr-x--- 2 root  root   4096 Feb 25 08:10 hspeoot 
-rw-r--r-- 1 root  root   2451 Feb 25 16:12 gry.txt 
-rw-r--r-- 1 root  root   3112 Mar 1 09:49 new.xml 
-rw-r--r-- 1 root  root  44893 Mar 1 12:13 SMports.xml 
-rwxr-xr-x 1 root  root   101 Mar 2 09:56 test 
-rwxr-xr-x 1 root  root 461340404 Mar 2 10:20 audin.log 

проблема заключается в том, что я пишу код с Баш , и я хочу использовать Perl добавить значение в моей Баш скрипт

, можно ли объединить следующую строку в моем сценарии bash?

my $value = qx(ls -ltr); 

в пути, что, когда я напечатать значение переменной будет печататься Ls -ltr выход

+0

эхо $ значение общей 451052 -r-хт-хт-х 1 корень корень 761 30 мая 2014 ASCBMon.conf -r-хт -xr-x 1 root root 699 30 мая 2014 ascbmon.pl drwxr-xr-x 2 roog (это печатает одну длинную строку) не так, как я хочу, а значение cat не является незаконным – maihabunash

+3

Вам нужно поставить двойные кавычки вокруг '' $ value ", когда вы эхом, иначе пробел будет потерян. –

+0

WOW его работа - напишите свой ответ - так что я могу проголосовать и выбрать ваш ответ, – maihabunash

ответ

4

Вам не нужно Perl для этого, ваша оболочка может справиться с этим:

value=$(ls -ltr) 
echo "$value" 

Важные цитаты, когда вы эхо.

2

В Perl:

$var = `shell command`; 
$var = qx(shell command); 

В sh:

var=`shell command` 
var=$(shell command) 
Смежные вопросы