我如何多次使用管道?

时间:2012-09-01 11:30:42

标签: bash pipe

我尝试用功能:

filter-root () {
echo $1 | perl -pe 's/ /\n/g' | perl -pe 's/.*(emacs|libreoffice|autokey|bkubuntu).*//' | perl -pe 's/^\n//'
}

但它不起作用:

$ myList=`git ls-files`
$ filter-root myList
myList

2 个答案:

答案 0 :(得分:2)

在为其分配值时,您可以单独编写bash个变量:

MYLIST=`ls *.txt` # Remember to avoid blanks aroud the "="

但如果您希望bash展开它们,则必须在它们前面添加$

echo $MYLIST # Usually is "safer" to wrap the variable with quotes - echo "$MYLIST"

答案 1 :(得分:1)

您需要预先添加$来传递变量:

filter-root $myList

此外,您应该传递"$myList"以防止myList的内容被Bash拆分为令牌......或者您可以使用echo "$*"