我想将输出存储到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语句中使用命令时如何获得相同的输出?