嵌套的if else语句,期望的操作数

如果else语句嵌套在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

它可以正确找到路径,但是会显示错误:“预期操作数(错误令牌为“第一目录”

pipi0462 回答:嵌套的if else语句,期望的操作数

要遍历数组的索引,请使用

for i in "${!dir_path[@]}" ; do
#           ^

要检查文件是否存在,请使用[ -f "${dir_path[i]}" ](用于数组,或者对于关联数组,与$i相同)。您所拥有的总是正确的,因为它检查字符串"$dir_path[i]"是否不为空,而永远不会为空,因为它始终至少包含[i]

本文链接:https://www.f2er.com/3142932.html

大家都在问