好的,我大约一周前问了一个问题,得到了一个有效但不能解决我问题的回复。我是KSH的新手。一个好的解释也会有所帮助,我宁愿有一个起点或开始阅读的地方,而不是已经写了代码。:)我希望成品看起来像这样:
iter = 1
do
while fileExistsInDir==true
$arr[$iter] = filename
iter++
done
#do something with the array
在我之前的问题中,我被告知要这样做
set --*
[#$var -gt 0]&&{
echo $1
}
这有效,但我必须保持 1 美元的增量,即 2 美元、3 美元、4 美元等。我希望它保持静态并更改每个文件的值。有没有更简单的方法可以做到这一点。到目前为止,我在 Stack 上看到的所有内容要么需要依赖项,要么似乎不起作用。
将当前目录中的所有文件放入数组中非常简单:
$ arr=(*)
$ echo "${arr[@]}"
*
称为 glob 构造,但大多数人称其为通配符。 它的意思是"当前目录中零个或多个字符的文件名"(即所有字符)。 我假设是相对较新的 ksh 版本。 多年来,Korn shell 中的阵列处理发生了变化。
set -- *
行将当前目录中的所有文件分解为位置参数。
您可以使用以下命令遍历所有位置参数
for file in "$@"; do
echo "$file"
done