代码之家  ›  专栏  ›  技术社区  ›  user821060

如何使用bash显示8张随机图片中的3张

  •  -5
  • user821060  · 技术社区  · 8 年前

    我有 8. 目录中的图像。

    路径是 /blabla.com/img.

    我需要访问此路径并 从8个选项中随机选择3个 并显示这些。

    If 3 pics are the same ,它应该 echo "yeeey" .

    Otherwise , "neeey" 并将这些回答记录在文本文件中。

    2 回复  |  直到 8 年前
        1
  •  0
  •   Allan    8 年前

    我不会帮你做作业的! 然而,我可以给你一些见解:

    • 将8个文件名存储在一个数组中
    • 呼叫 $RANDOM % 8 3次,并将值存储在3个索引变量中
    • 使用3个索引变量提取3个文件
    • 使用 sha256sum , sha512sum md5sum 计算图像的特征并将结果存储在3个变量中
    • 比较3个变量的值(如果相同) echo "yeeey" 其他的 echo "neeey"
    • 如果你想按照帖子中的内容显示图片,你可以打电话给 eog 或者其他类似的工具,以finename为参数,当然是在后台,带有 & 在命令调用结束时。

    祝你的作业顺利,如果你需要帮助,请告诉我!

        2
  •  0
  •   Nahuel Fouilleul    8 年前

    让我们排列一个由不同元素组成的数组(例如8):

    array=({A..H})
    

    (1) 使用 RANDOM 特殊变量对元素数进行模化,得到一个介于0和1之间(包括0和1)的随机数

    number=$((RANDOM%${#array[@]}))
    

    第一个随机元素是

    first=${array[number]}
    

    从数组中删除元素,并重新分配数组以无间隙地重新索引( declare -p array 要查看)

    unset array[number]
    array=("${array[@]}")
    

    从(1)重新启动