0

我试图用函数来做到这一点:

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
4

2 回答 2

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"
于 2012-09-01T11:45:55.310 回答
1

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

filter-root $myList

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

于 2012-09-01T11:34:20.650 回答