在下面的代码中,我期待这样的输出:
Transmission_Downloads/The.Last.Man.On.Earth.S02E04.HDTV.x264-KILLERS[ettv]/Torrent-Downloaded-from-ExtraTorrent.cc.txt
Transmission_Downloads/Fargo.S02E01.HDTV.x264-KILLERS[ettv]/Torrent-Downloaded-from-ExtraTorrent.cc.txt
Transmission_Downloads/Nightwish - Showtime Storytime (2013) 1080p 5.1/SEMEAR.txt
但我得到的是这个
Transmission_Downloads/The.Last.Man.On.Earth.S02E04.HDTV.x264-KILLERS[ettv]/Torrent-Downloaded-from-ExtraTorrent.cc.txt
Transmission_Downloads/Fargo.S02E01.HDTV.x264-KILLERS[ettv]/Torrent-Downloaded-from-ExtraTorrent.cc.txt
Transmission_Downloads/Nightwish
-
Showtime
Storytime
(2013)
1080p
5.1/SEMEAR.txt
我应该如何让我的 shell 脚本正确解析文件和文件夹名称上的空格?谢谢!
#!/bin/bash
#opcao -s nao mostra o texto na tela
echo "Digite sua senha"
read -s answer
root_folder="/home/pi/"
user="pi"
server="*****"
local_folder="/home/dellcloud2"
#Colocar aqui os paths dos arquivos que deseja puxar
array=(
"Transmission_Downloads/The.Last.Man.On.Earth.S02E04.HDTV.x264-KILLERS[ettv]/Torrent-Downloaded-from-ExtraTorrent.cc.txt"
"Transmission_Downloads/Fargo.S02E01.HDTV.x264-KILLERS[ettv]/Torrent-Downloaded-from-ExtraTorrent.cc.txt"
"Transmission_Downloads/Nightwish - Showtime Storytime (2013) 1080p 5.1/SEMEAR.txt"
)
for i in ${array[@]}; do
#sshpass -p $answer rsync -aP $user@$server:$root_folder$i $local_folder
echo $i
done
最佳答案
您需要使用 "${array[@]}"
来保留空格。数组周围的引号加上通配符 @
共同实现了这一点。
这也适用于位置参数,即 "$@"
为您提供命令行参数数组,并在给定时正确引用。
关于linux - shell 脚本 : parse blank spaces correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33308980/