bash - while循环bash脚本

标签 bash shell

我有一个文本文件包含以下信息:

/media/Arc/eo_archive_test/MODIS/L2_LAC_OC/A2006001071000.L2_LAC_OC.x.hdf:2006:365
/media/Arc/eo_archive_test/MODIS/L2_LAC_OC/A2006001084000.L2_LAC_OC.x.hdf:2013:011
/media/Arc/eo_archive_test/MODIS/L2_LAC_OC/A2006001084500.L2_LAC_OC.x.hdf:2005:365
....

我想回显 $f1,其中 $f2 是“2013”​​,$f3 是“011”。我正在使用以下脚本,但它回显了所有内容。我在这里做错了什么?

file=/media/Arc/eo_archive_test/MODIS/input/all_file_list.txt
while IFS=: read -r f1 f2 f3
do
    [ "$f2" = "2013" ] || [ "$f3" = "011" ]
    echo $f1
done < "$file"

有什么解决办法吗? 预先感谢您

最佳答案

您需要将测试连接到操作

[[ $f2 == 2013 && $f3 == 011 ]] && echo $f1

if [ "$f2" = "2013" ] && [ "$f3" = "011" ]; then
    echo $f1
fi

您现在所做的是执行测试命令并忽略退出状态。所以 echo 命令确实对每一行执行。

关于bash - while循环bash脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22229306/

相关文章:

linux - 如果 dhcp 失败,设置保存的静态 IP 地址

linux - 无法使用dockerfile运行shell脚本

linux - awk 仅当行以结果开头时才匹配

c++ - shell 扩展:IShellExtInit::Initialize 调用了 4 次

bash - 使用 sed 提取大括号中的子字符串

linux - ~ 被 bash 中的变量值替换

PyCharm 中的 Git 使用预先存在的存储库

linux - svn 权限问题 - txn-current-lock : Permission denied

c - 在window上包含C基础库(unistd.h)

linux - 通过 Bash 从 Cisco C40 获取输出