我正在尝试在Bash中连接find的结果。所以我得到了以下代码:
c="sh -content_image in.jpg, style_image "
find t/Pictures -name "*.jpg"| while read line; do
c=${c}",",
c=${c}"$line"
echo $line
done
echo $c
首先打印t / Pictures中的所有文件,然后打印字符串sh -content_image in.jpg,style_image。虽然它应该做的是首先打印所有文件,然后打印该字符串,然后打印所有
所以当前的输出如下:
t/Pictures/nature/ActiOn_89.jpg
t/Pictures/nature/ActiOn_27.jpg
t/Pictures/nature/ActiOn_47.jpg
t/Pictures/nature/ActiOn_54.jpg
sh -content_image in.jpg, style_image
但我希望它看起来像
t/Pictures/nature/ActiOn_89.jpg
t/Pictures/nature/ActiOn_27.jpg
t/Pictures/nature/ActiOn_47.jpg
t/Pictures/nature/ActiOn_54.jpg
sh -content_image in.jpg, style_image t/Pictures/nature/ActiOn_89.jpg,t/Pictures/nature/ActiOn_27.jpg,t/Pictures/nature/ActiOn_47.jpg,t/Pictures/nature/ActiOn_54.jpg
知道我做错了什么吗?
答案 0 :(得分:2)
你可以这样做:
c="sh -content_image in.jpg, style_image "
while IFS= read -rd '' line; do
echo "$line"
c+="$line,"
done < <(find t/Pictures -name "*.jpg" -print0)
# strip trailing comma
c="${c%,}"