gpt4 book ai didi

linux - Bash - for循环中的多个条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:54 24 4
gpt4 key购买 nike

我正在尝试使用多个条件执行 for 循环,但我没有在网上找到有关如何执行此操作的任何信息

很抱歉提出愚蠢的问题,但我刚开始在 linux 中编程

我做错了什么?

    #!/bin/bash

j=0

for line in `cat .temp_` || j in `seq 0 19`
do
...

done

错误说语法错误,我不能使用 ||

非常感谢

最佳答案

for line in `cat .temp_`
do
if ! grep -Fxq $line $dictionary && [ $j -lt 20 ]
then
echo $line >> $dictionary
j=$((j+1))
fi
[ $j -gt 20 ] && break
done

您不能在 shell 中检查 for 循环中的条件。你必须在额外的声明中这样做。在这种情况下:

[ $j -gt 20 ] && break

另一种解决方案,没有break:

while read line && [ $j -lt 20 ]
do
if ! grep -Fxq $line $dictionary && [ $j -lt 20 ]
then
echo $line >> $dictionary
j=$((j+1))
fi
done < .temp_

关于linux - Bash - for循环中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com