清空 ksh 中的现有数组
empty an existing array in ksh
我有一个脚本,它将文件列表存储在一个数组中,如下所示
set -A my_array $(ls -tr $INPUT_DIRECTORY/*)
我必须清空这个 my_array
变量才能将其用于其他目的。我无法声明另一个新数组。
有没有办法清除数组的内容,重新使用?
提前致谢。
因为您已经在使用 set -A
... 来清除您可以发出的数组:
set -A my_array
要重新使用数组:
set -A my_array $(command to generate new data set)
例如:
$ cd /
$ set -A my_array $('ls' -tr sys)
$ echo ${my_array[@]}
kernel devices module bus class fs block power firmware dev
$ set -A my_array $('ls' -tr var)
$ echo ${my_array[@]}
opt crash X11R6 mail games yp spool lib adm cache lock tmp log run
$ set -A my_array
$ echo ${my_array[@]}
<<no output>>
或者您可以使用循环结构,例如:
for i in ${!my_array[@]}
do
unset my_array[${i}]
done
例如:
$ set -A my_array $('ls' -tr var)
$ echo ${my_array[@]}
opt crash X11R6 mail games yp spool lib adm cache lock tmp log run
$ for i in ${!my_array[@]}
do
unset my_array[${i}]
done
$ echo ${my_array[@]}
<<no output>>
我有一个脚本,它将文件列表存储在一个数组中,如下所示
set -A my_array $(ls -tr $INPUT_DIRECTORY/*)
我必须清空这个 my_array
变量才能将其用于其他目的。我无法声明另一个新数组。
有没有办法清除数组的内容,重新使用?
提前致谢。
因为您已经在使用 set -A
... 来清除您可以发出的数组:
set -A my_array
要重新使用数组:
set -A my_array $(command to generate new data set)
例如:
$ cd /
$ set -A my_array $('ls' -tr sys)
$ echo ${my_array[@]}
kernel devices module bus class fs block power firmware dev
$ set -A my_array $('ls' -tr var)
$ echo ${my_array[@]}
opt crash X11R6 mail games yp spool lib adm cache lock tmp log run
$ set -A my_array
$ echo ${my_array[@]}
<<no output>>
或者您可以使用循环结构,例如:
for i in ${!my_array[@]}
do
unset my_array[${i}]
done
例如:
$ set -A my_array $('ls' -tr var)
$ echo ${my_array[@]}
opt crash X11R6 mail games yp spool lib adm cache lock tmp log run
$ for i in ${!my_array[@]}
do
unset my_array[${i}]
done
$ echo ${my_array[@]}
<<no output>>