【发布时间】:2015-03-02 09:29:47
【问题描述】:
Perl 是将命令输出存储到变量的优秀语言 据我所知 bash 不支持它
例如
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
问题是我用 bash 编写代码 我想在我的 bash 脚本中使用 Perl 添加值
那么是否可以在我的 bash 脚本中合并以下行?
my $value = qx(ls -ltr);
当我打印 value 变量时,它将打印 ls -ltr 输出
【问题讨论】:
-
echo $value 总计 451052 -r-xr-xr-x 1 个根 761 2014 年 5 月 30 日 ASCBMon.conf -r-xr-xr-x 1 个根 699 2014 年 5 月 30 日 ascbmon.pl drwxr -xr-x 2 roog (这个打印一长行)不是我想要的,并且 cat $value 不是非法的
-
回显时需要在
"$value"周围加上双引号,否则空格会丢失。 -
哇它的工作 - 写下你的答案 - 这样我就可以投票并选择你的答案,
-
我建议不要在两种脚本语言之间混合和匹配,除非有特别迫切的需要。这是一条通往混乱和维护难题的道路。