给出蓝牙传输bash脚本的文件名无效

时间:2016-05-28 16:14:10

标签: bash shell

我是一个懒惰的流浪汉,我一直在尝试制作一个简单的bash脚本来将文件从com传输到我的手机。但是,当我运行以下脚本时,我不断收到“文件名无效”

for f in *.mp3
do
  bluetooth-sendto --device=<ADDRESS> ${f}
done

任何人都能指出我正确的方向吗? :)

1 个答案:

答案 0 :(得分:1)

您的一个文件正确包含空格。当引用参数扩展时,它们将进行单词拆分和通配。根据经验,你应该总是引用:

for f in *.mp3; do
  [ -e "$f" ] || continue
  bluetooth-sendto --device=<ADDRESS> "$f"
done

[ -e "$f" ] || continue的原因是,如果找不到文件,则文字*.mp3将位于f