将每一行存储在单个数组字段中

时间:2013-11-10 11:48:55

标签: arrays bash path

我的问题是:

在我的bash脚本中命令。

ls -d */ | sed 's#/##'

显示当前路径中的所有文件夹,如:

dir1
new folder2
folder3
new directory 4

现在我需要将它们存储在一个数组中,但问题是“new folder2”将覆盖2个数组字段,我需要将每一行存储在一个字段中。 那样:

var[0] = "dir1"
var[1] = "new folder2"
var[2] = "folder3"
var[3] = "new directory 4"

如何实现?

1 个答案:

答案 0 :(得分:2)

您需要一个包含当前目录的每个文件夹的数组。这真的很简单:

shopt -s nullglob
var=(*/)

如果您决定需要从数组成员中删除尾部斜杠,那么在迭代它们或将它们输出给用户时最好这样做。只要你使用globs - 这就是*/ - 你将非常安全,而不需要操纵字符串。

好读: