小编jdo*_*066的帖子

`ls` 在 bash 脚本内部和外部的行为不同

我正在使用 Synology NAS。我有一个要删除的文件列表,在名为Myfiles.txt.\xc2\xa0\n的文件中列出了完整路径。\xc2\xa0 文件有大约 3000\xc2\xa0 行,如下所示:

\n
"/volume2/NBU/Downloads/AA_To be seen/Life.Itself.2018.1080p.WEB-DL.DD5.1.H264-FGT/RARBG.txt"\n"/volume2/nbU/Downloads/AA_To be seen/Find.Me.in.Paris.S01.WEBRip.x264-ION10/Find.Me.in.Paris.S01E16.High.Stakes.Hip.Hop.WEBRip.x264-ION10.mp4"\n"/volume2/NBU/Downloads/AA_To be seen/Find.Me.in.Paris.S01.WEBRip.x264-ION10/Find.Me.in.Paris.S01E14.Time.to.Face.the.Music.WEBRip.x264-ION10.mp4"\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用以下脚本\n(测试 并ls稍后替换为rm\xc2\xa0-f):

\n
#!/bin/bash\nwhile IFS="" read -r p;\ndo\n  ls "$p"\ndone < "Myfiles.txt"\n
Run Code Online (Sandbox Code Playgroud)\n

不幸的是,当我执行脚本时,每个循环都会出错并显示以下消息:

\n
ls: cannot access "/volume2/NBU/Downloads/AA_To be seen/Life.Itself.2018.1080p.WEB-DL.DD5.1.H264-FGT/RARBG.txt": No such file or directory\nls: cannot access "/volume2/NBU/Downloads/AA_To be seen/Find.Me.in.Paris.S01.WEBRip.x264-ION10/Find.Me.in.Paris.S01E16.High.Stakes.Hip.Hop.WEBRip.x264-ION10.mp4": No such file or directory\nls: cannot access "/volume2/NBU/Downloads/AA_To be seen/Find.Me.in.Paris.S01.WEBRip.x264-ION10/Find.Me.in.Paris.S01E14.Time.to.Face.the.Music.WEBRip.x264-ION10.mp4": No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n

但是当我直接从命令行执行该行时,它就可以工作。\xc2\xa0\nFor\xc2\xa0example:

\n
ll "/volume2/NBU/Downloads/AA_To be seen/Find.Me.in.Paris.S01.WEBRip.x264-ION10/Find.Me.in.Paris.S01E14.Time.to.Face.the.Music.WEBRip.x264-ION10.mp4"\n
Run Code Online (Sandbox Code Playgroud)\n

给出输出:

\n
-rwxrwxrwx+ 1 Pansysadmin …
Run Code Online (Sandbox Code Playgroud)

bash shell-script synology

4
推荐指数
2
解决办法
1159
查看次数

标签 统计

bash ×1

shell-script ×1

synology ×1