如果if语句嵌套在for循环中。预期的操作数。错误令牌是:
Ubuntu Linux
for i in "${dir_path[@]}"; do
if [ "$dir_path[i]" ]; then <--- this line
echo "$filename found, Directory: $i"
else
echo "$filename not found"
fi
done
它正确找到路径,但显示错误:“期望操作数(错误标记为”第一目录“]
要遍历数组的索引,请使用
for i in "${!dir_path[@]}" ; do
# ^
要检查文件是否存在,请使用[ -f "${dir_path[i]}" ]
(用于数组,或与$i
相同用于关联数组)。您所拥有的总是正确的,因为它检查字符串"$dir_path[i]"
是否不为空,而永远不会为空,因为它始终至少包含[i]
。