以下代码搜索文件 update_csgo.txt 的目录,将其写入数组并打印数组:
#!/bin/bash
mapfile -t updates < <(find /home/tcagame/ -type f -name "update_csgo.txt")
printf "'%s' \n"${updates[@]}""
以下是我得到的输出:
'/home/tcagame/8frag/6/update_csgo.txt'
/home/tcagame/update_csgo.txt'/home/tcagame/user/3/update_csgo.txt'
/home/tcagame/update_csgo.txt'/home/tcagame/user/5/update_csgo.txt'
/home/tcagame/update_csgo.txt'/home/tcagame/user/4/update_csgo.txt'
/home/tcagame/update_csgo.txt'/home/tcagame/user/7/update_csgo.txt'
/home/tcagame/update_csgo.txt'/home/tcagame/user/8/update_csgo.txt'
/home/tcagame/update_csgo.txt'/home/tcagame/user/2/update_csgo.txt'
/home/tcagame/update_csgo.txt
/home/tcagame/update_csgo.txt 来自哪里?删除它的最佳方法是什么?
答案 0 :(得分:1)
你有额外的报价:
printf "'%s' \n"${updates[@]}""
^^
删除它们使它工作(可选地,您总是可以引用变量本身来正确处理带空格的文件名):
printf "'%s' \n" "${updates[@]}"