首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell脚本:在命令中正确解析空格

Shell脚本:在命令中正确解析空格
EN

Stack Overflow用户
提问于 2015-11-22 03:38:33
回答 1查看 74关注 0票数 0

我正在编写一个脚本,通过ssh从我的服务器到本地计算机获取电影(mp4和mkv文件),但是在包含完整路径空间的文件夹中,我遇到了一个错误。脚本如下所示(尚未实现!)

代码语言:javascript
复制
#!/bin/bash

cmd=(`find /home/pi/Transmission_Downloads/ -type f | grep .mp4`)

for i in "${cmd[@]}"; do
    echo $i
done

我得到的输出是

代码语言:javascript
复制
/home/pi/Transmission_Downloads/Nightwish.Rock.in.Rio.2015.720p.WEBRip-NRD.mp4
/home/pi/Transmission_Downloads/Limitless.S01E09.HDTV.x264-LOL[ettv]/limitless.109.hdtv-lol[ettv].mp4
/home/pi/Transmission_Downloads/The.Last.Man.On.Earth.S02E07.HDTV.x264-KILLERS[ettv]/The.Last.Man.On.Earth.S02E07.HDTV.x264-KILLERS[ettv].mp4
/home/pi/Transmission_Downloads/Mom.S03E03.HDTV.x264-LOL[ettv]/mom.303.hdtv-lol[ettv].mp4
/home/pi/Transmission_Downloads/Family.Guy.S14E06.HDTV.x264-KILLERS[ettv]/Family.Guy.S14E06.HDTV.x264-KILLERS[ettv].mp4
/home/pi/Transmission_Downloads/Ant-Man.2015.720p.WEB-DL.DD5.1.H264-RARBG/RARBG.com.mp4
/home/pi/Transmission_Downloads/Heroes.Reborn.S01E10.HDTV.x264-FUM[ettv]/Heroes.Reborn.S01E10.INTERNAL.HDTV.x264-FUM[ettv].mp4
/home/pi/Transmission_Downloads/The.Middle.S07E08.HDTV.x264-LOL[ettv]/the.middle.708.hdtv-lol[ettv].mp4
/home/pi/Transmission_Downloads/Fargo.S02E06.INTERNAL.HDTV.x264-BATV[ettv]/Fargo.S02E06.INTERNAL.HDTV.x264-BATV[ettv].mp4
/home/pi/Transmission_Downloads/Family.Guy.S14E05.HDTV.x264-FLEET[rarbg]/Family.Guy.S14E05.HDTV.x264-FLEET.mp4
/home/pi/Transmission_Downloads/The
Man
in
the
High
Castle
S01E02
Sunrise
x264
poke/The_Man_in_the_High_Castle_S01E02_Sunrise_x264_poke.mp4
/home/pi/Transmission_Downloads/The.Walking.Dead.S06E06.HDTV.x264-KILLERS[ettv]/The.Walking.Dead.S06E06.HDTV.x264-KILLERS[ettv].mp4

如何防止这些断线的发生?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-22 03:41:04

在脚本解决问题之前和之后添加这些行吗?

代码语言:javascript
复制
BKPIFS=$IFS
IFS='
' # note this is a newline character after the first quote so IFS is set to a newline
... your little script
IFS=$BKPIFS

如果这样做了,问题是IFS (内部字段分隔器)默认包含空格,导致流(包括它)沿空白边界被分割。因此,在备份后,将IFS显式地设置为换行符(BKPIFS),可以解决与空白的冲突。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33851342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档