我在perl中使用backtics和pipe时遇到了一些问题。我有以下代码:
my @arr_lsdev = `lsdev -C | grep inet | awk '{print \$1}'` ;
print Dumper @arr_lsdev ;
但我得到以下错误:
sh[2]: 0403-057 Syntax error : `|' is not expected
我猜它与我的转义命令有关。我试过逃避|但它仍会导致同样的错误。
操作系统:AIX
Shell:KSH
答案 0 :(得分:3)
请注意,错误在第2行。您实际上正在执行
my @arr_lsdev = `lsdev -C | grep inet
| awk '{print \$1}'` ;
答案 1 :(得分:0)
您可以减少管道数量:
my @arr_lsdev = map {(split ' ')[0]} grep {/inet/} `lsdev -C`;