小编cas*_*erl的帖子

Bash - 检查文件是否存在,文件名包含空格

我正在Bash中测试是否存在文件,其中文件名使用$(printf'%q'"$ FNAME") 进行转义.如下面的注释示例所示,使用if [-f $ FNAME]会产生错误.如何测试包含空格和其他字符的文件名?

#!/usr/bin/env bash

# code used in Raspberry Pi Podcasting Jukebox project
# youtube-dl -f 17 --get-filename https://www.youtube.com/watch?v=AgkM5g_Ob-w
# returns "HOW ABUNDANCE WILL CHANGE THE WORLD - Elon Musk 2017-AgkM5g_Ob-w.3gp"

# Purpose: To test if file exists before downloading
# for testing purposes using an existing regular file "abc def ghi"
AFILE="abc def ghi"
TFILE=$(printf '%q' "$AFILE") # Escaping filename using printf
echo $TFILE # returns abc\ def\ ghi
# …
Run Code Online (Sandbox Code Playgroud)

linux bash shell

5
推荐指数
1
解决办法
4199
查看次数

标签 统计

bash ×1

linux ×1

shell ×1