在shell脚本中,将输出存储到case语句中的数组中

时间:2015-08-25 06:29:20

标签: arrays shell

我想将输出存储到shell脚本中的数组中,该脚本在case语句中调用。我正在运行Bash版本3.2.39。 Windriver Linux。

我使用的命令是files_array_out =($(ls | grep test))

当在case语句之外定义输出时,此命令可正常工作并将输出存储到数组中。如果在case语句中调用相同的命令,则输出不会存储在数组中。它将输出存储为单个变量,中间包含新行。

Ex:我创建了3个文件test1,test2,test3。这就是我使用的例子

#!/斌/庆典

#####外部案例陈述

files_array_out =($(ls | grep test)) echo“Outside Case statement:测试文件的第一个元素是$ {files_array_out [0]}”

# 内部案例陈述

echo“输入1”

IFS =“”;阅读

案例“$ a”in         “1”)files_array =($(ls | grep test))                 echo“Inside Case语句:第一个元素是$ {files_array [0]}”         ;; ESAC

跑步后得到的输出是:  sh check.sh Outside Case语句:测试文件的第一个元素是test1 输入1 1 Inside Case语句:第一个元素是test1 TEST2 TEST3

任何人都可以帮我解决这个问题。当使用相同的命令时,为什么输出在case语句内外不同?在case语句中使用命令时如何获得相同的输出?

0 个答案:

没有答案