linux查看文件名是否有空格,linux – 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

# if [ -f $AFILE ] # this test returns false every time with error [:too many arguments

if [ -f $TFILE ] # This test also returns FALSE with err [: too many arguments

then

echo "Existing"

# don't download

else

echo "Not existing"

# youtube-dl http://www.youtube.com/watch?v=AgkM5g_Ob-w

fi

编辑:这个问题的解决方案涉及通过[[]]使测试条件成为Bash表达式的具体问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值