包围当运行我的bash脚本,我有以下错误:']' 预期的Bash语法错误 - 尽管`]`存在,并通过空间
./myscript.sh:[:16: ']' expected
第16行是:
[ -d "$dir" ] && echo "$dir" && for file in "$dir"/*/*
通常这个错误来自[]
条件中的缺失空间,但我没有忘记它。 这里开始,在第14行的脚本的其余部分:
for dir in "$message_directory"/*
do
[ -d "$dir" ] && echo "$dir" && for file in "$dir"/*/*
do
if [ -d "$file" ] ; then
if [[ -f "$file"/Message.txt || -f "$file"/Message.html ]] ; then
hashMD5=$(md5sum "$file/message"* | cut -d " " -f1 | head -n 1)
todelete=$(find "$directory_to_check" -type f -not -path "*$message_directory*" -name "Message*" -exec md5sum "{}" \; | grep "^$hashMD5")
todelete=$(echo "$todelete" | tr -s " " | cut -d " " -f2-)
todelete=$(echo "$todelete" | sed -E 's/(Message[0-9][0-9]*).+/\1/')
if [[ ! -z "$todelete" ]] ; then
echo "searching for hash : $hashMD5"
while read -r line; do
message_todelete=$(echo "$line")
echo "I will delete : $message_todelete"
md5sum "$todelete/Message"* | head -n 1
#rm -r "$line"
done <<< "$todelete"
fi
fi
fi
done
done
我试图运行与dash
脚本,它的工作,直到<<<
得到满足,这是可以理解的,但没有关于失踪]
你说得对unicode空白,我检查你的命令并删除它,脚本现在正在工作。但看起来是在关闭']' – aze
哇之后,但你是如何找到OP的源代码? :) – anubhava
@ user3714670:谢谢 - 是的,没有休息空间来了'''''''我更新了我的帖子。 – mklement0