gpt4 book ai didi

linux - Bash字典错误没有这样的文件或目录

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:05 25 4
gpt4 key购买 nike

我正在尝试制作自己的 bash 脚本,该脚本将检查给定目录中是否有任何重复的文件作为参数。除了 shasum 之外,我无法使用任何预制工具来检查文件的哈希值。使用字典,我想将文件名保存为键,将哈希值(由 shasum 生成)保存为值。以便我事后比较结果。但是,如果我想尝试这个,我会收到以下错误。

./duper: line 18: [./duper]=17c24ce4178f3f5283e0342835c56b64600d0ce8: No such file or directory
./duper: line 18: [./duper.backup]=f4097584a410fde440244fddd34321edd2083b99: No such file or directory
./duper: line 18: [./item.txt]=61516f2530f38ece78027250de1b6f5cc14689a5: No such file or directory
./duper: line 18: [./log.txt]=c3a2850427bb5704f94c670bd0cbab5e4303bd0f: No such file or directory
./duper: line 18: [./origin_copy.txt]=0e74dbd74c383c0985fd3627f6c35b74da18c131: No such file or directory
./duper: line 18: [./origin.txt]=0e74dbd74c383c0985fd3627f6c35b74da18c131: No such file or directory
./duper: line 18: [./origin_wrong.txt]=abfb88a05ce9fd93f98eee5b33a88991d2702529: No such file or directory

有谁知道我可能做错了什么,我已经在网上搜索了几个小时了。但似乎无法弄清楚。

我现在的代码:

#!/bin/bash
if [ $# -eq 0 ]; then # Check if argument has been provided
echo ERROR: No argument supplied!
exit 1
elif [ ! -d $1 ]; then # Check if directory exists
echo ERROR: Directory not found!
exit 2
fi

declare -A arr

for i in $1/*; do
$arr[$i]=$(shasum -a1 "$i")
done

最佳答案

去掉原来的$arr[$i]=...中的$,使得:

for i in "$1"/*; do
arr[$i]=$(shasum -a1 "$i")
done

关于linux - Bash字典错误没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55340418/

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