将一个以null结尾的字符串传递给bash函数

时间:2016-07-25 16:42:15

标签: bash

我的导出功能:

myfunc(){
# Some operation with null terminated string
# If I use $1, is it guaranteed that it is a null terminated string?
}

为了这个例子,考虑

find . -type -f -print0 | while read -rd '' line
do
myfunc "$line"
done

1 个答案:

答案 0 :(得分:4)

如果您使用的是print0,请确保在IFS=-d ''之外使用空的read将null作为分隔符:

while IFS= read -r -d '' line; do
   myfunc "$line"
done < <(find . -type f -print0)

如图所示,您还可以避免管道并使用流程替换。