而在Linux shell中,我有一个字符串,它包含以下内容:
cat
dog
bird
我想把每一项都作为参数传递给另一个函数。我该怎么做呢?
发布于 2011-02-19 23:18:45
只需将字符串传递给您的函数:
function my_function
{
while test $# -gt 0
do
echo "do something with $1"
shift
done
}
my_string="cat
dog
bird"
my_function $my_string
为您提供:
do something with cat
do something with dog
do something with bird
如果您真的关心将其他空格用作参数分隔符,请首先设置您的IFS
IFS="
"
my_string="cat and kittens
dog
bird"
my_function $my_string
要获得以下信息:
do something with cat and kittens
do something with dog
do something with bird
在此之后,不要忘记使用unset IFS
。
发布于 2011-02-20 02:18:30
如果您使用bash,则只需设置IFS:
$ x="black cat
brown dog
yellow bird"
$ IFS=$'\n'
$ for word in $x; do echo "$word"; done
black cat
brown dog
yellow bird
发布于 2016-05-07 06:02:49
使用xargs
根据您想要对每一行执行的操作,它可以像下面这样简单:
xargs -n1 func < file
或者更复杂的使用:
cat file | xargs -n1 -I{} func {}
https://stackoverflow.com/questions/5051556
复制相似问题