while read -r line; do filesystem=$(echo $line | awk '{print $1}') disk_total=$(echo $line | awk '{print $2}') disk_used=$(echo $line | awk '{print $3}') disk_usage=$(echo $line | awk '{print $5}' | sed 's/%//') mount_point=$(echo $line | awk '{print $6}') if [ "$filesystem" != "/dev/loop0" ]; then echo " 挂载点:$mount_point" >> $output_file echo " 文件系统:$filesystem" >> $output_file echo " 总磁盘空间:$disk_total" >> $output_file echo " 已使用磁盘空间:$disk_used" >> $output_file echo " 磁盘使用率:$disk_usage%" >> $output_file if [ $disk_usage -gt 80 ]; then echo " 【警告】此挂载点磁盘使用率超过正常值 (80%)" >> $output_file disk_warning=1 fi fi
报错
done < <(df -h | grep "^/dev") server_bas_inspection.sh: line 82: syntax error near unexpected token <' server_bas_inspection.sh: line 82:done < <(df -h | grep "^/dev")'
解决办法:
使用替换
df -h | grep "^/dev" | while read -r line; do
# ... 其他代码不变 ...
done