请随意将问题重命名为更合适的内容。
我如何使用zsh
代替下面的bash
?
mkdir folder1
mkdir folder2
mkdir folder3
# zsh
folders=(folder*) | print $folders
#folder1 folder2 folder3
# bash
folders=(folder*/) | echo $folders
#folder1
如您所见,这只输出第一个元素。
任何指示都将不胜感激,谢谢。
答案 0 :(得分:4)
尝试将其更改为:
folders=(folder*); echo "${folders[@]}"
folders[@]
提供数组中的所有元素${}
将上面命令的输出扩展为bash。答案 1 :(得分:0)
如果让我们说,您在某个目录中有多个.txt文件,并且您希望获取/显示这些文件夹。你可以尝试这样的事情:
declare -a folder_arr
i=0
for dir in *.txt; do
folder_arr[i]=$dir
i=$((i+1))
done
for j in $(seq 0 $((i-1)))
do
echo ${folder_arr[$j]}
done
我执行了上述文件并且能够得到预期的结果。
/temps$ ./dirrr.sh
z.txt