这个问题一开始困扰到我了,ls的返回值是一个以空格为分隔符的长字符串,而shell里又没有像python一样方便的字符串split操作,没办法一步拆分,难道就只能写在循环里一步步赋值了么?
后来,我偶然发现shell里数组的定义方式为:
array_name=(value1 value2 ... valuen)
参数本身就是以空格分隔的!那不正好,我们只需要在ls返回值的外面套上一层圆括号就好,例如这样
arr=(`ls`)
接下来你可以试试输出arr的元素个数,看是不是成功将目录名存储为了数组
echo ${#arr[*]}