使用Mac OSX Bash脚本错误第7行:[:参数太多 我的脚本只显示上面的错误......
任何帮助都会很棒。
if [ ! -f B*.mp3 ]
then
echo "No files"
exit 0
else
do something....
fi
答案 0 :(得分:2)
在BASH中,您可以使用B*.mp3
模式检查是否存在匹配文件:
shopt -s nullglob
arr=(B*.mp3)
if (( ${#arr[@]} ))
then
echo "No files"
exit 0
else
echo "do something...."
fi
答案 1 :(得分:1)
Bash会将B*.mp3
扩展为文件列表;如果有多个文件,test
命令(又名[
)的参数太多。)您可以使用find
检查是否存在多个文件。
if [ -z "$(find . -name "B*.mp3" -maxdepth 1)" ]
then
echo "No files"
exit 0
else
do something....
fi
答案 2 :(得分:0)
如果使用位置参数列表没有问题,这将起作用:
#!/bin/bash
shopt -s nullglob # Prevent that the B*.mp3 itself is the result.
set -- ./B*.mp3 # Find files that match the pattern.
if [ $# -lt 1 ]; # If there are 0 files ....
then
echo "No files"
exit 0
else
do something....
fi