2017-09-04 75 views
0

現有陣列我有腳本,其存儲在一個陣列的文件的列表如下所示空在KSH

set -A my_array $(ls -tr $INPUT_DIRECTORY/*) 

我必須清空該my_array變量將其用於其他目的。我無法聲明另一個新數組。

有什麼方法可以清除數組的內容並重新使用它?

在此先感謝。

回答

2

既然你已經使用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>>