需要修复bash脚本吗

需要修复bash脚本吗,bash,Bash,我有180个子目录,其中我需要复制“hcc\u mac.db”,并需要在sub\u block\u db.txt文件中写入“hcc\u mac” 我试过这个: #!/bin/bash srcdir="/pr/disk_up/bpalla/mac_H.ssg0p65v0c.lib.gz_2090104230/hdm/hcc_mac_.db" dicts=(dict1 dict2 dict3 ..... dict180) var1="hcc_mac" for dict in "${dicts[@

我有180个子目录,其中我需要复制
“hcc\u mac.db”
,并需要在
sub\u block\u db.txt
文件中写入
“hcc\u mac”

我试过这个:

#!/bin/bash
srcdir="/pr/disk_up/bpalla/mac_H.ssg0p65v0c.lib.gz_2090104230/hdm/hcc_mac_.db"
dicts=(dict1 dict2 dict3 ..... dict180)
var1="hcc_mac" 

for dict in "${dicts[@]}"
do
    dstdir="src/meta/tools/2in/les/$dict/."
    cp -rf $srcdir "$dstdir"
    cat > src/meta/tools/2in/les/"$dict"/sub_block_db.lst << EOF1
$var1 
EOF1
done
#/bin/bash
srcdir=“/pr/disk_up/bpalla/mac_H.ssg0p65v0c.lib.gz_2090104230/hdm/hcc_mac_.db”
dicts=(dict1 dict2 dict3…..dict180)
var1=“hcc\u mac”
对于“${dicts[@]}”中的dict
做
dstdir=“src/meta/tools/2in/les/$dict/”
cp-rf$srcdir“$dstdir”
cat>src/meta/tools/2in/les/“$dict”/sub_block_db.lst代替

cat > src/meta/tools/2in/les/"$dict"/sub_block_db.lst << EOF1
$var1 
EOF1
而不是

cat > src/meta/tools/2in/les/"$dict"/sub_block_db.lst << EOF1
$var1 
EOF1

我还是有同样的问题。权限被拒绝。是否从其他目录运行脚本?如何从其他目录运行脚本?然后尝试从运行脚本的位置手动执行此操作。我猜你会注意到你在某处有一个路径错误。啊,是的,我忘了补充:我有一个痛苦的经历,那就是使用绝对路径总是一个好主意。总是。为什么?上下文对于绝对路径,您可以始终确保无论何时何地,无论是谁,无论脚本何时运行,它都会到达正确的位置。我仍然遇到同样的问题。权限被拒绝。是否从其他目录运行脚本?如何从其他目录运行脚本?然后尝试从运行脚本的位置手动执行此操作。我猜你会注意到你在某处有一个路径错误。啊,是的,我忘了补充:我有一个痛苦的经历,那就是使用绝对路径总是一个好主意。总是。为什么?上下文对于绝对路径,您可以始终确保无论何时何地,无论是谁,当脚本运行时,它总是指向正确的位置。为了提高可靠性,我首先使用
cat>$dstdir/sub_block_db.lst权限是可以的,因为当我手动执行其工作时。但是脚本不起作用。你真的按照我的建议在脚本中加入了检查吗?我想首先,为了更好的可靠性,使用
cat>$dstdir/sub_block_db.lst权限是可以的,因为当我手动执行它的工作时。但是脚本不起作用。你真的按照我的建议在脚本中加入了检查吗?