kshの

2017-09-04 12 views
0

で既存のアレイ私は、他の目的のためにそれを使用するには、このmy_array変数を空にする必要がありkshの

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

下に示すように、アレイ内のファイルのリストを格納するスクリプトを持っています。私は別の新しい配列を宣言することはできません。

アレイの内容を消去して再度使用する方法はありますか?

ありがとうございます。

答えて

2

すでに配列をクリアするために... set -Aを使用しているので、あなたが発行する可能性があります。たとえば

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>> 

set -A my_array 

は、アレイを再利用するには

また、ループ構造を使用することもできます。例:

例えば
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>>