小编Pet*_*ter的帖子

你如何在 bash 中创建一个临时文件数组?

我需要有多个临时文件。我决定数组最适合它,因为我确实创建了 10 个临时文件,使用它们并删除了 10 个文件。通过研究,我想出了这个:

declare -A my_array
my_array=()

for i in `seq -w 1 10`
do
    my_array[$i]= $(mktemp /tmp/$i.XXXX)

done

#Do stuff with the files in the array

for i in `seq -w 1 10`
do
    rm my_array[$i]
done
Run Code Online (Sandbox Code Playgroud)

但是,这给了我错误:

./plot.sh: line 7: /tmp/01.PkUG: Permission denied 
./plot.sh: line 7: /tmp/02.eFNZ: Permission denied And so on...
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为当我在没有循环的情况下创建 10 个文件时,它工作正常,但显然非常混乱:

tmpfile1=$(mktemp /tmp/data1.XXX)
tmpfile2=$(mktemp /tmp/data2.XXX)
And so on...

#And then remove

rm $tmpfile1
rm $tmpfile2
And so on....
Run Code Online (Sandbox Code Playgroud)

unix linux bash

1
推荐指数
1
解决办法
102
查看次数

标签 统计

bash ×1

linux ×1

unix ×1